Skip to content

Fix query tokenizing on windows #205

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Dec 20, 2021
Merged

Conversation

alexander-schranz
Copy link
Contributor

@alexander-schranz alexander-schranz commented Dec 15, 2021

@alexander-schranz alexander-schranz changed the title Add CI for windows tests Fix query tokenizing on windows Dec 15, 2021
Comment on lines 61 to 62
include:
- php-version: '7.4'
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@dbu should we add other php versions also for windows test matrix?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i would not run the full matrix, but maybe the latest version (8.1 at the moment)?

Copy link
Member

@dbu dbu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks for looking into this!

interesting to see how easy it has become to run tests on a windows instance 🤯

see the second question though: is the windows build helping much, or should we craft a test with newlines formatted to all formats instead?

Comment on lines 61 to 62
include:
- php-version: '7.4'
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i would not run the full matrix, but maybe the latest version (8.1 at the moment)?

@@ -152,7 +152,7 @@ protected function scan($sql2)
$splitString = \str_split($sql2);
for ($index = 0; $index < count($splitString); $index++) {
$character = $splitString[$index];
if (!$stringStartCharacter && in_array($character, [' ', "\t", "\n"], true)) {
if (!$stringStartCharacter && in_array($character, [' ', "\t", "\n", "\r"], true)) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if you do not have this line, do the tests actually fail? do we have a test that builds a query with PHP_EOL? if that is the case, lets have a windows build.

if not, i suggest that we craft queries with explicit \n and \r newlines to cover all cases (macos, linux and windows) instead of building on a windows system.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

oh, found the reproducer commit and build you linked. so it does only fail on windows. but why is that? shouldn't that test also fail on linux?

Copy link
Contributor Author

@alexander-schranz alexander-schranz Dec 17, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@dbu I think git converts line breaks on windows from "\n" to the windows "\n\r" format. And that's why its only failing there. I would keep atleast one windows run to make sure in future it works. But also don't think the whole matrix does add any value.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

so if we would add a test that has a \n\r in it, it would also fail on linux (without the fix)?

i think we should have such a test as well then, it seems a bit indirect and obscure that the windows test happens the way it does.

@dbu dbu merged commit 361fe27 into phpcr:master Dec 20, 2021
@dbu
Copy link
Member

dbu commented Dec 20, 2021

@alexander-schranz alexander-schranz deleted the patch-1 branch December 20, 2021 09:35
@alexander-schranz
Copy link
Contributor Author

@dbu Thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

InvalidQueryException on Windows for correct query
2 participants