mirror of
https://github.com/nvm-sh/nvm.git
synced 2025-05-11 06:41:50 +00:00
55 lines
1.7 KiB
Bash
Executable File
55 lines
1.7 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
die () { printf "$@" ; exit 1; }
|
|
|
|
\. ../../../nvm.sh
|
|
\. sharedTestResources/semvers
|
|
|
|
# nvm_is_valid_semver validates that given semvers adhere to the following grammer
|
|
#
|
|
# semver ::= comparator_set ( ' || ' comparator_set )*
|
|
# comparator_set ::= comparator ( ' ' comparator )*
|
|
# comparator ::= ( '<' | '<=' | '>' | '>=' | '' ) [0-9]+ '.' [0-9]+ '.' [0-9]+
|
|
|
|
# POSITIVE TEST CASES
|
|
|
|
positive_test_cases="$VALID_NORMALIZED_SEMVERS"
|
|
if [ -z "$positive_test_cases" ]; then
|
|
die "positive test cases are empty"
|
|
fi
|
|
|
|
prev_semver=''
|
|
while [ -n "$positive_test_cases" ]; do
|
|
semver=$(echo "$positive_test_cases" | head -n1)
|
|
if [ -z "$semver" ] || ! nvm_is_valid_semver "$semver"; then
|
|
die "nvm_string_contains_regexp POSITIVE test case failed. semver: '$semver'.\n"
|
|
fi
|
|
if [ "$prev_semver" = "$semver" ]; then
|
|
die "something is wrong. positive test cases received the same test case twice in a row. semver: '$semver'"
|
|
fi
|
|
prev_semver="$semver"
|
|
positive_test_cases=$(echo "$positive_test_cases" | tail -n +2)
|
|
done
|
|
|
|
# NEGATIVE TEST CASES
|
|
|
|
negative_test_cases="$VALID_NON_NORMALIZED_SEMVERS"
|
|
if [ -z "$negative_test_cases" ]; then
|
|
die "negative test cases are empty"
|
|
fi
|
|
|
|
prev_semver='initialized to non empty string'
|
|
while [ -n "$negative_test_cases" ]; do
|
|
semver=$(echo "$negative_test_cases" | head -n1)
|
|
if nvm_is_valid_semver "$semver"; then
|
|
die "nvm_string_contains_regexp NEGATIVE test case failed. semver: '$semver'.\n"
|
|
fi
|
|
if [ "$prev_semver" = "$semver" ]; then
|
|
die "something is wrong. negative test cases received the same test case twice in a row. semver: '$semver'"
|
|
fi
|
|
prev_semver="$semver"
|
|
negative_test_cases=$(echo "$negative_test_cases" | tail -n +2)
|
|
done
|
|
exit 0
|
|
|