Skip to content

Commit

Permalink
Test: ensure char[] doesn't being with prefix (#34816)
Browse files Browse the repository at this point in the history
The testCharsBeginsWith test has a check that a random prefix of length
2 is not the prefix of a char[]. However, there is no check that the
char[] is not randomly generated with the same two characters as the
prefix. This change ensures that the char[] does not begin with the
prefix.

Closes #34765
  • Loading branch information
jaymode committed Oct 25, 2018
1 parent 057a9d3 commit 85da252
Showing 1 changed file with 10 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -43,12 +43,12 @@ public void testBytesToUtf8Chars() {
assertArrayEquals(expectedChars, convertedChars);
}

@AwaitsFix(bugUrl = "https://github.com/elastic/elasticsearch/issues/34765")
public void testCharsBeginsWith() {
assertFalse(CharArrays.charsBeginsWith(randomAlphaOfLength(4), null));
assertFalse(CharArrays.charsBeginsWith(null, null));
assertFalse(CharArrays.charsBeginsWith(null, randomAlphaOfLength(4).toCharArray()));
assertFalse(CharArrays.charsBeginsWith(randomAlphaOfLength(2), randomAlphaOfLengthBetween(3, 8).toCharArray()));
final String undesiredPrefix = randomAlphaOfLength(2);
assertFalse(CharArrays.charsBeginsWith(undesiredPrefix, randomAlphaOfLengthNotBeginningWith(undesiredPrefix, 3, 8)));

final String prefix = randomAlphaOfLengthBetween(2, 4);
assertTrue(CharArrays.charsBeginsWith(prefix, prefix.toCharArray()));
Expand All @@ -73,4 +73,12 @@ public void testConstantTimeEquals() {
assertFalse(CharArrays.constantTimeEquals(value, other));
assertFalse(CharArrays.constantTimeEquals(value.toCharArray(), other.toCharArray()));
}

private char[] randomAlphaOfLengthNotBeginningWith(String undesiredPrefix, int min, int max) {
char[] nonMatchingValue;
do {
nonMatchingValue = randomAlphaOfLengthBetween(min, max).toCharArray();
} while (new String(nonMatchingValue).startsWith(undesiredPrefix));
return nonMatchingValue;
}
}

0 comments on commit 85da252

Please sign in to comment.