Commit ec73cb0f authored by Emeric Verschuur's avatar Emeric Verschuur

wip

parent 72fd4d7e
Pipeline #107 failed with stage
in 0 seconds
stages:
- test
tests:
image: ubuntu:16.04
tests-bash-4.3:
image: bash:4.3
script:
- ./test.sh
stage: test
tests-bash-4.4:
image: bash:4.4
script:
- ./test.sh
stage: test
This diff is collapsed.
#!/bin/bash -e
#!/usr/bin/env bash
# Copyright 2017-2018 Emeric Verschuur <emeric@mbedsys.org>
#
# Licensed to the Apache Software Foundation (ASF) under one
......@@ -18,6 +18,8 @@
# specific language governing permissions and limitations
# under the License.
set -e
. bashopts.sh
trap 'bashopts_exit_handle' ERR
......@@ -47,14 +49,14 @@ _test_case_2() {
bashopts_setup -n "$0" -d "Test case $0" -s /tmp/bashopts_testrc
bashopts_declare -n base_path -l base -o b -d "Base path" -t string -v "/opt/test" -i -s
bashopts_declare -n base_path -l base -o b -d "Base path" -t string -v "/opt/test" -i
bashopts_declare -n config_path -l config -o c -d "Configuration path" -t string -x "\$base_path/myconf.cfg" -s
bashopts_parse_args --base /tmp -n
bashopts_process_opts
req_test_eq "$config_path" "/tmp/myconf.cfg"
req_test_eq "$(cat /tmp/bashopts_testrc)" "base_path=/tmp"
req_test_eq "$(cat /tmp/bashopts_testrc)" "config_path=/tmp/myconf.cfg"
}
_test_case_3() {
......@@ -155,7 +157,7 @@ _test_case_10() {
bashopts_declare -n simple_val -s -l value -d "Simple value" -t string -v 'val'
bashopts_parse_args --value=test
req_test_eq "$(bashopts_process_opts 2>&1)" "[WARN] No settings file specified"
req_test_eq "$(bashopts_process_opts 2>&1)" "[WARN] Option simple_val: No settings file specified"
}
_test_case_11() {
......@@ -164,7 +166,7 @@ _test_case_11() {
bashopts_declare -n simple_val -s -l value -d "Simple value" -t string -v 'val'
bashopts_parse_args --value=test
req_test_eq "$(bashopts_process_opts 2>&1 | grep 'WARN')" "[WARN] Please check the settings file"
req_test_eq "$(bashopts_process_opts 2>&1 | grep 'WARN')" "[WARN] Option simple_val: Please check the settings file"
}
_test_case_12() {
......@@ -235,37 +237,6 @@ _test_case_15() {
req_test_eq "$(cat /tmp/bashopts_testrc)" 'array_value=([0]="value 1" [1]="value 3")'
}
_test_case_16() {
rm -f /tmp/bashopts_testrc
bashopts_setup -n "$0" -d "Test case $0" -s /tmp/bashopts_testrc
bashopts_declare -n array_value -l value -m add -d "Array value" -s -i -t string -x '("value 1" "value 2")'
bashopts_parse_args --value ""
bashopts_process_opts > /dev/null <<< '( "value 1" "value 2" )'
req_test_eq "${#array_value[@]}" "2"
req_test_eq "${array_value[0]}" "value 1"
req_test_eq "${array_value[1]}" "value 2"
if [ -f /tmp/bashopts_testrc ]; then
echo "file /tmp/bashopts_testrc should not be present"
exit 1
fi
}
_test_case_17() {
rm -f /tmp/bashopts_testrc
bashopts_setup -n "$0" -d "Test case $0" -s /tmp/bashopts_testrc -p
bashopts_declare -n a_value -l value -d "A value" -s -i -t string -v "default value"
bashopts_parse_args
bashopts_process_opts > /dev/null <<< ""
req_test_eq "$a_value" "default value"
req_test_eq "$(cat /tmp/bashopts_testrc)" "a_value='default value'"
}
_test_case_18() {
bashopts_setup -n "$0" -d "Test case $0"
......@@ -310,7 +281,7 @@ _test_case_20() {
req_test_eq "$(echo "$(bashopts_process_option -n value -k is_eq_to_null -r 2>&1 > /dev/null <<< "na")" \
| grep '^\[ERR' | tail -n 1 || true)" '[ERRO] Not equal to NULL'
req_test_eq "$(echo "$(bashopts_process_option -n value -k is_eq_to_null -r 2>&1 > /dev/null <<< "()")" \
| grep '^\[ERR' | tail -n 1 || true)" '[ERRO] At least one value required'
| grep '^\[ERR' | tail -n 1 || true)" '[ERRO] Option value: At least one value required'
bashopts_process_option -n value -k is_eq_to_null -r > /dev/null 2>&1 <<< "NULL"
}
......@@ -322,7 +293,7 @@ _test_case_21() {
bashopts_parse_args -n
bashopts_process_opts
req_test_eq "$(echo "$(bashopts_process_option -n value -k is_not_empty -r 2>&1 > /dev/null)" \
| grep '^\[ERR' | head -n 1)" '[ERRO] At least one value required'
| grep '^\[ERR' | head -n 1)" '[ERRO] Option value: At least one value required'
}
_test_case_22() {
......@@ -351,9 +322,10 @@ _test_case_24() {
bashopts_parse_args
bashopts_process_opts
# NOTE: Fix answer again after a is_eq_to_null check failure
req_test_eq "$( (bashopts_process_option -n value -k is_eq_to_null -r 2>&1 <<< "NUL" \
|| true) | grep -E '^* A str value$' | wc -l )" "2"
|| true) | grep '^* A str value$' | wc -l )" "2"
}
_test_case_25() {
......@@ -362,7 +334,7 @@ _test_case_25() {
bashopts_declare -n value -l value -d "A str value" -t string -r
req_test_eq "$( (bashopts_process_opts 2>&1 <<< "" \
|| true) | grep -E '^* A str value$' | wc -l )" "2"
|| true) | grep '^* A str value$' | wc -l )" "2"
}
_test_case_26() {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment