[ https://issues.apache.org/jira/browse/TINKERPOP-2683?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17470692#comment-17470692 ]
Fredrick Eisele commented on TINKERPOP-2683: -------------------------------------------- The grammar seems to assume the Groovy grammar as a starting point. Groovy allows the escaped backslash in strings. There is a third (and probably correct) alternative. The path could be escaped before being inserted into the script. > Defective Path in Testing g.io() > -------------------------------- > > Key: TINKERPOP-2683 > URL: https://issues.apache.org/jira/browse/TINKERPOP-2683 > Project: TinkerPop > Issue Type: Bug > Components: tinkergraph > Affects Versions: 3.5.1 > Reporter: Fredrick Eisele > Priority: Blocker > Labels: easyfix, test-stability > > I found a small bug in the tinkergraph testing on windows 10. > It comes up because the grammar does not allow a '\' ... > {code:none} > fragment > DoubleQuotedStringCharacters > : DoubleQuotedStringCharacter+ > ; > fragment > DoubleQuotedStringCharacter > : ~('"' | '\\') > | JoinLineEscape > | EscapeSequence > ; > {code} > ``` > ...and the function which locates the g.io() file adds in a '\'. > [TinkerGraphWorld.java|https://github.com/apache/tinkerpop/blob/53503bfa28ba1de061204fb96835dee856576bbf/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/TinkerGraphWorld.java] > {code:java} > @Override > public String changePathToDataFile(final String pathToFileFromGremlin) { > return ".." + File.separator + pathToFileFromGremlin; > } > {code} > The File.separator on linux is a valid character '/' but the problematic '\' > character on Windows 10. > Which gets called by... > [StepDefinition.java|https://github.com/apache/tinkerpop/blob/53503bfa28ba1de061204fb96835dee856576bbf/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/features/StepDefinition.java] > {code:java} > private String tryUpdateDataFilePath(final String docString) { > final Matcher matcher = ioPattern.matcher(docString); > final String gremlin = matcher.matches() ? > docString.replace(matcher.group(1), > world.changePathToDataFile(matcher.group(1))) : docString; > return gremlin; > } > {code} > In particular this gets triggered by the > [Read.feature|https://github.com/apache/tinkerpop/blob/53503bfa28ba1de061204fb96835dee856576bbf/gremlin-test/features/sideEffect/Read.feature] > . -- This message was sent by Atlassian Jira (v8.20.1#820001)