#!/bin/sh \. ../../../nvm.sh \. ../../generated_semvers.sh # nvm_is_normalized_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_normalized_semver "$semver"; then die "nvm_is_normalized_semver 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=$(printf "%s\n%s" "$VALID_NON_NORMALIZED_SEMVERS" "$INVALID_SEMVERS_FOR_PKG_JSON") 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_normalized_semver "$semver"; then die "nvm_is_normalized_semver 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