mirror of
https://gitee.com/mirrors_adrian-thurston/yq.git
synced 2026-01-15 07:53:35 +08:00
Now using shunit2 for acceptance tests
This commit is contained in:
@@ -1,270 +1,10 @@
|
||||
#!/bin/bash
|
||||
|
||||
#! /bin/bash
|
||||
set -e
|
||||
|
||||
# acceptance test
|
||||
for test in acceptance_tests/*.sh; do
|
||||
echo "--------------------------------------------------------------"
|
||||
echo "$test"
|
||||
echo "--------------------------------------------------------------"
|
||||
(exec $test);
|
||||
done
|
||||
|
||||
|
||||
|
||||
echo "test eval-sequence"
|
||||
random=$((1 + $RANDOM % 10))
|
||||
./yq e -n ".a = $random" > test.yml
|
||||
X=$(./yq e '.a' test.yml)
|
||||
|
||||
if [[ $X != $random ]]; then
|
||||
echo "Failed create: expected $random but was $X"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "--success"
|
||||
|
||||
echo "test update-in-place"
|
||||
|
||||
update=$(($random + 1))
|
||||
./yq e -i ".a = $update" test.yml
|
||||
|
||||
X=$(./yq e '.a' test.yml)
|
||||
if [[ $X != $update ]]; then
|
||||
echo "Failed to update inplace test: expected $update but was $X"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "--success"
|
||||
|
||||
echo "test eval-all"
|
||||
./yq ea -n ".a = $random" > test-eval-all.yml
|
||||
Y=$(./yq ea '.a' test-eval-all.yml)
|
||||
|
||||
if [[ $Y != $random ]]; then
|
||||
echo "Failed create with eval all: expected $random but was $X"
|
||||
exit 1
|
||||
fi
|
||||
echo "--success"
|
||||
|
||||
echo "test no exit status"
|
||||
./yq e '.z' test.yml
|
||||
echo "--success"
|
||||
|
||||
echo "test exit status"
|
||||
set +e
|
||||
|
||||
./yq e -e '.z' test.yml
|
||||
|
||||
if [[ $? != 1 ]]; then
|
||||
echo "Expected error code 1 but was $?"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Test: leading seperator logic"
|
||||
expected=$(cat examples/leading-seperator.yaml)
|
||||
|
||||
X=$(cat examples/leading-seperator.yaml | ./yq e '.' -)
|
||||
if [[ $X != $expected ]]; then
|
||||
echo "Pipe into e"
|
||||
echo "Expected $expected but was $X"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
X=$(./yq e '.' examples/leading-seperator.yaml)
|
||||
expected=$(cat examples/leading-seperator.yaml)
|
||||
if [[ $X != $expected ]]; then
|
||||
echo "read given file e"
|
||||
echo "Expected $expected but was $X"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
X=$(cat examples/leading-seperator.yaml | ./yq ea '.' -)
|
||||
if [[ $X != $expected ]]; then
|
||||
echo "Pipe into e"
|
||||
echo "Expected $expected but was $X"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
X=$(./yq ea '.' examples/leading-seperator.yaml)
|
||||
expected=$(cat examples/leading-seperator.yaml)
|
||||
if [[ $X != $expected ]]; then
|
||||
echo "read given file e"
|
||||
echo "Expected $expected but was $X"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# multidoc
|
||||
read -r -d '' expected << EOM
|
||||
---
|
||||
a: test
|
||||
---
|
||||
version: 3
|
||||
application: MyApp
|
||||
EOM
|
||||
|
||||
X=$(./yq e '.' examples/leading-seperator.yaml examples/order.yaml)
|
||||
|
||||
if [[ $X != $expected ]]; then
|
||||
echo "Multidoc with leading seperator"
|
||||
echo "Expected $expected but was $X"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
X=$(./yq ea '.' examples/leading-seperator.yaml examples/order.yaml)
|
||||
|
||||
if [[ $X != $expected ]]; then
|
||||
echo "Multidoc with leading seperator"
|
||||
echo "Expected $expected but was $X"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Test: handle empty files"
|
||||
./yq e '.' examples/empty.yaml
|
||||
if [[ $? != 0 ]]; then
|
||||
echo "Expected no error when processing empty file but got one"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
cat examples/empty.yaml | ./yq e '.' -
|
||||
if [[ $? != 0 ]]; then
|
||||
echo "Expected no error when processing empty stdin but got one"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# run expression against empty file
|
||||
rm -f temp.yaml
|
||||
touch temp.yaml
|
||||
expected="apple: tree"
|
||||
|
||||
./yq e '.apple = "tree"' temp.yaml -i
|
||||
X=$(cat temp.yaml)
|
||||
rm -f temp.yaml
|
||||
if [[ $X != $expected ]]; then
|
||||
echo "Write empty doc"
|
||||
echo "Expected $expected but was $X"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
touch temp.yaml
|
||||
|
||||
./yq ea '.apple = "tree"' temp.yaml -i
|
||||
X=$(cat temp.yaml)
|
||||
rm -f temp.yaml
|
||||
if [[ $X != $expected ]]; then
|
||||
echo "Write all empty doc"
|
||||
echo "Expected $expected but was $X"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Test: handle empty files with just comments"
|
||||
rm -f temp.yaml
|
||||
echo "# comment" > temp.yaml
|
||||
read -r -d '' expected << EOM
|
||||
# comment
|
||||
apple: tree
|
||||
EOM
|
||||
|
||||
./yq e '.apple = "tree"' temp.yaml -i
|
||||
X=$(cat temp.yaml)
|
||||
rm -f temp.yaml
|
||||
if [[ $X != $expected ]]; then
|
||||
echo "Write empty doc"
|
||||
echo "Expected $expected but was $X"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "# comment" > temp.yaml
|
||||
|
||||
./yq ea '.apple = "tree"' temp.yaml -i
|
||||
X=$(cat temp.yaml)
|
||||
rm -f temp.yaml
|
||||
if [[ $X != $expected ]]; then
|
||||
echo "Write all empty doc"
|
||||
echo "Expected $expected but was $X"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Test: eval front matter process"
|
||||
|
||||
cat >temp.yaml <<EOL
|
||||
---
|
||||
a: apple
|
||||
b: cat
|
||||
---
|
||||
not yaml
|
||||
c: at
|
||||
EOL
|
||||
|
||||
read -r -d '' expected << EOM
|
||||
---
|
||||
a: apple
|
||||
b: dog
|
||||
---
|
||||
not yaml
|
||||
c: at
|
||||
EOM
|
||||
|
||||
./yq e --front-matter="process" '.b = "dog"' temp.yaml -i
|
||||
X=$(cat temp.yaml)
|
||||
rm -f temp.yaml
|
||||
if [[ $X != $expected ]]; then
|
||||
echo "eval fail"
|
||||
echo "Expected $expected but was $X"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Test: eval front matter extract"
|
||||
|
||||
cat >temp.yaml <<EOL
|
||||
a: apple
|
||||
b: cat
|
||||
---
|
||||
not yaml
|
||||
c: at
|
||||
EOL
|
||||
|
||||
read -r -d '' expected << EOM
|
||||
a: apple
|
||||
b: dog
|
||||
EOM
|
||||
|
||||
./yq e --front-matter="extract" '.b = "dog"' temp.yaml -i
|
||||
X=$(cat temp.yaml)
|
||||
rm -f temp.yaml
|
||||
if [[ $X != $expected ]]; then
|
||||
echo "eval fail"
|
||||
echo "Expected $expected but was $X"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Test: eval-all front matter process"
|
||||
|
||||
cat >temp.yaml <<EOL
|
||||
---
|
||||
a: apple
|
||||
b: cat
|
||||
---
|
||||
not yaml
|
||||
c: at
|
||||
EOL
|
||||
|
||||
read -r -d '' expected << EOM
|
||||
---
|
||||
a: apple
|
||||
b: dog
|
||||
---
|
||||
not yaml
|
||||
c: at
|
||||
EOM
|
||||
|
||||
./yq ea --front-matter="process" '.b = "dog"' temp.yaml -i
|
||||
X=$(cat temp.yaml)
|
||||
rm -f temp.yaml
|
||||
if [[ $X != $expected ]]; then
|
||||
echo "eval fail"
|
||||
echo "Expected $expected but was $X"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "--success"
|
||||
|
||||
set -e
|
||||
|
||||
rm test.yml
|
||||
rm test-eval-all.yml
|
||||
echo "acceptance tests passed"
|
||||
|
||||
1343
scripts/shunit2
Executable file
1343
scripts/shunit2
Executable file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user