From: Karel Zak Date: Mon, 22 May 2023 13:40:38 +0000 (+0200) Subject: tests: add optlist tests X-Git-Tag: v2.40-rc1~444 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=e2d6f5e30e34fe54c9a54eb6f1d9d01b6723068a;p=thirdparty%2Futil-linux.git tests: add optlist tests Signed-off-by: Karel Zak --- diff --git a/tests/commands.sh b/tests/commands.sh index c9a5cd1294..38b425405b 100644 --- a/tests/commands.sh +++ b/tests/commands.sh @@ -15,6 +15,7 @@ TS_HELPER_LIBFDISK_MKPART_FULLSPEC="${ts_helpersdir}sample-fdisk-mkpart-fullspec TS_HELPER_LIBFDISK_SCRIPT_FUZZ="${ts_helpersdir}test_fdisk_script_fuzz" TS_HELPER_LIBMOUNT_LOCK="${ts_helpersdir}test_mount_lock" TS_HELPER_LIBMOUNT_OPTSTR="${ts_helpersdir}test_mount_optstr" +TS_HELPER_LIBMOUNT_OPTLIST="${ts_helpersdir}test_mount_optlist" TS_HELPER_LIBMOUNT_TABDIFF="${ts_helpersdir}test_mount_tab_diff" TS_HELPER_LIBMOUNT_TAB="${ts_helpersdir}test_mount_tab" TS_HELPER_LIBMOUNT_UPDATE="${ts_helpersdir}test_mount_tab_update" diff --git a/tests/expected/libmount/optlist-append b/tests/expected/libmount/optlist-append new file mode 100644 index 0000000000..d6951edcf9 --- /dev/null +++ b/tests/expected/libmount/optlist-append @@ -0,0 +1,5 @@ +#01 [ unknown ] name:'aaa', value:'(null)' +#02 [ unknown ] name:'bbb', value:'BBB' +#03 [ unknown ] name:'context', value:'foo,bar,gogo' +#04 [ unknown ] name:'ccc', value:'(null)' +#05 [ unknown ] name:'ddd', value:'(null)' diff --git a/tests/expected/libmount/optlist-append-empty-value b/tests/expected/libmount/optlist-append-empty-value new file mode 100644 index 0000000000..1ed1028922 --- /dev/null +++ b/tests/expected/libmount/optlist-append-empty-value @@ -0,0 +1,4 @@ +#01 [ unknown ] name:'aaa', value:'(null)' +#02 [ unknown ] name:'bbb', value:'BBB' +#03 [ unknown ] name:'ccc', value:'(null)' +#04 [ unknown ] name:'ddd', value:'(null)' diff --git a/tests/expected/libmount/optlist-append-value b/tests/expected/libmount/optlist-append-value new file mode 100644 index 0000000000..24f911577c --- /dev/null +++ b/tests/expected/libmount/optlist-append-value @@ -0,0 +1,4 @@ +#01 [ unknown ] name:'aaa', value:'(null)' +#02 [ unknown ] name:'bbb', value:'BBB' +#03 [ unknown ] name:'ccc', value:'(null)' +#04 [ unknown ] name:'ddd', value:'DDD' diff --git a/tests/expected/libmount/optlist-get b/tests/expected/libmount/optlist-get new file mode 100644 index 0000000000..217a6f7349 --- /dev/null +++ b/tests/expected/libmount/optlist-get @@ -0,0 +1,4 @@ +Default: rw,aaa,bbb=BBB,ccc +All: rw,aaa,bbb=BBB,ccc +Unknown: aaa,bbb=BBB,ccc +Helpers: rw,aaa,bbb=BBB,ccc diff --git a/tests/expected/libmount/optlist-get-flg-linux b/tests/expected/libmount/optlist-get-flg-linux new file mode 100644 index 0000000000..f57108b889 --- /dev/null +++ b/tests/expected/libmount/optlist-get-flg-linux @@ -0,0 +1 @@ +0x00000008 diff --git a/tests/expected/libmount/optlist-get-flg-user b/tests/expected/libmount/optlist-get-flg-user new file mode 100644 index 0000000000..83ab8b2b9e --- /dev/null +++ b/tests/expected/libmount/optlist-get-flg-user @@ -0,0 +1 @@ +0x0000000c diff --git a/tests/expected/libmount/optlist-get-str b/tests/expected/libmount/optlist-get-str new file mode 100644 index 0000000000..f7f3a13060 --- /dev/null +++ b/tests/expected/libmount/optlist-get-str @@ -0,0 +1,4 @@ +Default: rw,aaa,bbb=BBB,ccc,defaults +All: rw,aaa,bbb=BBB,ccc,defaults +Unknown: aaa,bbb=BBB,ccc +Helpers: rw,aaa,bbb=BBB,ccc diff --git a/tests/expected/libmount/optlist-get-str-linux b/tests/expected/libmount/optlist-get-str-linux new file mode 100644 index 0000000000..abe63b452f --- /dev/null +++ b/tests/expected/libmount/optlist-get-str-linux @@ -0,0 +1,5 @@ +Default: rw,noexec [0x00000008] (in linux map) +Default: rw,noexec,noauto,user,defaults +All: rw,noexec,noauto,user,defaults +Unknown: (null) +Helpers: rw,noexec,user diff --git a/tests/expected/libmount/optlist-get-str-user b/tests/expected/libmount/optlist-get-str-user new file mode 100644 index 0000000000..d04700319e --- /dev/null +++ b/tests/expected/libmount/optlist-get-str-user @@ -0,0 +1,5 @@ +Default: noauto,user,defaults [0x0000000c] (in user map) +Default: rw,noexec,noauto,user,defaults +All: rw,noexec,noauto,user,defaults +Unknown: (null) +Helpers: rw,noexec,user diff --git a/tests/expected/libmount/optlist-get-value b/tests/expected/libmount/optlist-get-value new file mode 100644 index 0000000000..217a6f7349 --- /dev/null +++ b/tests/expected/libmount/optlist-get-value @@ -0,0 +1,4 @@ +Default: rw,aaa,bbb=BBB,ccc +All: rw,aaa,bbb=BBB,ccc +Unknown: aaa,bbb=BBB,ccc +Helpers: rw,aaa,bbb=BBB,ccc diff --git a/tests/expected/libmount/optlist-prepend b/tests/expected/libmount/optlist-prepend new file mode 100644 index 0000000000..24c64c6ef1 --- /dev/null +++ b/tests/expected/libmount/optlist-prepend @@ -0,0 +1,4 @@ +#01 [ unknown ] name:'ddd', value:'(null)' +#02 [ unknown ] name:'aaa', value:'(null)' +#03 [ unknown ] name:'bbb', value:'BBB' +#04 [ unknown ] name:'ccc', value:'(null)' diff --git a/tests/expected/libmount/optlist-prepend-empty-value b/tests/expected/libmount/optlist-prepend-empty-value new file mode 100644 index 0000000000..24c64c6ef1 --- /dev/null +++ b/tests/expected/libmount/optlist-prepend-empty-value @@ -0,0 +1,4 @@ +#01 [ unknown ] name:'ddd', value:'(null)' +#02 [ unknown ] name:'aaa', value:'(null)' +#03 [ unknown ] name:'bbb', value:'BBB' +#04 [ unknown ] name:'ccc', value:'(null)' diff --git a/tests/expected/libmount/optlist-prepend-list b/tests/expected/libmount/optlist-prepend-list new file mode 100644 index 0000000000..9e5005f63c --- /dev/null +++ b/tests/expected/libmount/optlist-prepend-list @@ -0,0 +1,6 @@ +#01 [ unknown ] name:'ddd', value:'(null)' +#02 [ unknown ] name:'eee', value:'EEE' +#03 [ unknown ] name:'fff', value:'(null)' +#04 [ unknown ] name:'aaa', value:'(null)' +#05 [ unknown ] name:'bbb', value:'BBB' +#06 [ unknown ] name:'ccc', value:'(null)' diff --git a/tests/expected/libmount/optlist-prepend-value b/tests/expected/libmount/optlist-prepend-value new file mode 100644 index 0000000000..eed5de5d5a --- /dev/null +++ b/tests/expected/libmount/optlist-prepend-value @@ -0,0 +1,4 @@ +#01 [ unknown ] name:'ddd', value:'DDD' +#02 [ unknown ] name:'aaa', value:'(null)' +#03 [ unknown ] name:'bbb', value:'BBB' +#04 [ unknown ] name:'ccc', value:'(null)' diff --git a/tests/expected/libmount/optlist-remove b/tests/expected/libmount/optlist-remove new file mode 100644 index 0000000000..08f3898b08 --- /dev/null +++ b/tests/expected/libmount/optlist-remove @@ -0,0 +1,12 @@ + +Usage: + test_mount_optlist [testoptions] +Tests: + --append-str [linux|user] append to the list + --prepend-str [linux|user] prepend to the list + --set-str [linux|user] set to the list + --append-flg linux|user append to the list + --set-flg linux|user set to the list + --get-str [linux|user] all options in string + --get-flg linux|user all options by flags + diff --git a/tests/expected/libmount/optlist-remove-empty-value b/tests/expected/libmount/optlist-remove-empty-value new file mode 100644 index 0000000000..08f3898b08 --- /dev/null +++ b/tests/expected/libmount/optlist-remove-empty-value @@ -0,0 +1,12 @@ + +Usage: + test_mount_optlist [testoptions] +Tests: + --append-str [linux|user] append to the list + --prepend-str [linux|user] prepend to the list + --set-str [linux|user] set to the list + --append-flg linux|user append to the list + --set-flg linux|user set to the list + --get-str [linux|user] all options in string + --get-flg linux|user all options by flags + diff --git a/tests/expected/libmount/optlist-remove-quoted b/tests/expected/libmount/optlist-remove-quoted new file mode 100644 index 0000000000..08f3898b08 --- /dev/null +++ b/tests/expected/libmount/optlist-remove-quoted @@ -0,0 +1,12 @@ + +Usage: + test_mount_optlist [testoptions] +Tests: + --append-str [linux|user] append to the list + --prepend-str [linux|user] prepend to the list + --set-str [linux|user] set to the list + --append-flg linux|user append to the list + --set-flg linux|user set to the list + --get-str [linux|user] all options in string + --get-flg linux|user all options by flags + diff --git a/tests/expected/libmount/optlist-remove-value b/tests/expected/libmount/optlist-remove-value new file mode 100644 index 0000000000..08f3898b08 --- /dev/null +++ b/tests/expected/libmount/optlist-remove-value @@ -0,0 +1,12 @@ + +Usage: + test_mount_optlist [testoptions] +Tests: + --append-str [linux|user] append to the list + --prepend-str [linux|user] prepend to the list + --set-str [linux|user] set to the list + --append-flg linux|user append to the list + --set-flg linux|user set to the list + --get-str [linux|user] all options in string + --get-flg linux|user all options by flags + diff --git a/tests/expected/libmount/optlist-set b/tests/expected/libmount/optlist-set new file mode 100644 index 0000000000..a9f1e663a2 --- /dev/null +++ b/tests/expected/libmount/optlist-set @@ -0,0 +1,4 @@ +#01 [ unknown ] name:'new', value:'(null)' +#02 [ unknown ] name:'data', value:'(null)' +#03 [ unknown ] name:'for', value:'(null)' +#04 [ unknown ] name:'list', value:'(null)' diff --git a/tests/expected/libmount/optlist-set-empty b/tests/expected/libmount/optlist-set-empty new file mode 100644 index 0000000000..02e1b58f45 --- /dev/null +++ b/tests/expected/libmount/optlist-set-empty @@ -0,0 +1 @@ +#01 [ unknown ] name:'bbb', value:'(null)' diff --git a/tests/expected/libmount/optlist-set-large b/tests/expected/libmount/optlist-set-large new file mode 100644 index 0000000000..02e1b58f45 --- /dev/null +++ b/tests/expected/libmount/optlist-set-large @@ -0,0 +1 @@ +#01 [ unknown ] name:'bbb', value:'(null)' diff --git a/tests/expected/libmount/optlist-set-new b/tests/expected/libmount/optlist-set-new new file mode 100644 index 0000000000..c538cbe958 --- /dev/null +++ b/tests/expected/libmount/optlist-set-new @@ -0,0 +1 @@ +#01 [ unknown ] name:'aaa', value:'(null)' diff --git a/tests/expected/libmount/optlist-set-new-empty b/tests/expected/libmount/optlist-set-new-empty new file mode 100644 index 0000000000..c538cbe958 --- /dev/null +++ b/tests/expected/libmount/optlist-set-new-empty @@ -0,0 +1 @@ +#01 [ unknown ] name:'aaa', value:'(null)' diff --git a/tests/expected/libmount/optlist-set-new-end b/tests/expected/libmount/optlist-set-new-end new file mode 100644 index 0000000000..12d6779d8b --- /dev/null +++ b/tests/expected/libmount/optlist-set-new-end @@ -0,0 +1 @@ +#01 [ unknown ] name:'ccc', value:'(null)' diff --git a/tests/expected/libmount/optlist-set-new-end-empty b/tests/expected/libmount/optlist-set-new-end-empty new file mode 100644 index 0000000000..12d6779d8b --- /dev/null +++ b/tests/expected/libmount/optlist-set-new-end-empty @@ -0,0 +1 @@ +#01 [ unknown ] name:'ccc', value:'(null)' diff --git a/tests/expected/libmount/optlist-set-remove b/tests/expected/libmount/optlist-set-remove new file mode 100644 index 0000000000..02e1b58f45 --- /dev/null +++ b/tests/expected/libmount/optlist-set-remove @@ -0,0 +1 @@ +#01 [ unknown ] name:'bbb', value:'(null)' diff --git a/tests/expected/libmount/optlist-set-small b/tests/expected/libmount/optlist-set-small new file mode 100644 index 0000000000..02e1b58f45 --- /dev/null +++ b/tests/expected/libmount/optlist-set-small @@ -0,0 +1 @@ +#01 [ unknown ] name:'bbb', value:'(null)' diff --git a/tests/expected/libmount/optstr-prepend-list b/tests/expected/libmount/optstr-prepend-list new file mode 100644 index 0000000000..9f289fdde8 --- /dev/null +++ b/tests/expected/libmount/optstr-prepend-list @@ -0,0 +1 @@ +result: >ddd,eee=EEE,fff,aaa,bbb=BBB,ccc< diff --git a/tests/ts/libmount/optlist b/tests/ts/libmount/optlist new file mode 100755 index 0000000000..84994967f8 --- /dev/null +++ b/tests/ts/libmount/optlist @@ -0,0 +1,67 @@ +#!/bin/bash + +# Copyright (C) 2010 Karel Zak + +TS_TOPDIR="${0%/*}/../.." +TS_DESC="options string" + +. "$TS_TOPDIR"/functions.sh +ts_init "$*" + +ts_check_test_command $TS_HELPER_LIBMOUNT_OPTLIST + +TESTPROG="$TS_HELPER_LIBMOUNT_OPTLIST" + +ts_init_subtest "append" +ts_run $TESTPROG --append-str "aaa,bbb=BBB,context=\"foo,bar,gogo\",ccc" "ddd" &> $TS_OUTPUT +ts_finalize_subtest + +ts_init_subtest "append-value" +ts_run $TESTPROG --append-str "aaa,bbb=BBB,ccc" "ddd=DDD" &> $TS_OUTPUT +ts_finalize_subtest + +ts_init_subtest "append-empty-value" +ts_run $TESTPROG --append-str "aaa,bbb=BBB,ccc" "ddd=" &> $TS_OUTPUT +ts_finalize_subtest + +ts_init_subtest "prepend" +ts_run $TESTPROG --prepend-str "aaa,bbb=BBB,ccc" "ddd" &> $TS_OUTPUT +ts_finalize_subtest + +ts_init_subtest "prepend-list" +ts_run $TESTPROG --prepend-str "aaa,bbb=BBB,ccc" "ddd,eee=EEE,fff" &> $TS_OUTPUT +ts_finalize_subtest + +ts_init_subtest "prepend-value" +ts_run $TESTPROG --prepend-str "aaa,bbb=BBB,ccc" "ddd=DDD" &> $TS_OUTPUT +ts_finalize_subtest + +ts_init_subtest "prepend-empty-value" +ts_run $TESTPROG --prepend-str "aaa,bbb=BBB,ccc" "ddd=" &> $TS_OUTPUT +ts_finalize_subtest + +ts_init_subtest "set" +ts_run $TESTPROG --set-str "aaa,bbb=BBB,ccc" "new,data,for,list" &> $TS_OUTPUT +ts_finalize_subtest + +ts_init_subtest "get-str" +ts_run $TESTPROG --get-str "aaa,bbb=BBB,ccc,defaults" &> $TS_OUTPUT +ts_finalize_subtest + +ts_init_subtest "get-str-linux" +ts_run $TESTPROG --get-str "noexec,noauto,user,defaults" linux &> $TS_OUTPUT +ts_finalize_subtest + +ts_init_subtest "get-str-user" +ts_run $TESTPROG --get-str "noexec,noauto,user,defaults" user &> $TS_OUTPUT +ts_finalize_subtest + +ts_init_subtest "get-flg-linux" +ts_run $TESTPROG --get-flg "noexec,noauto,user,defaults" linux &> $TS_OUTPUT +ts_finalize_subtest + +ts_init_subtest "get-flg-user" +ts_run $TESTPROG --get-flg "noexec,noauto,user,defaults" user &> $TS_OUTPUT +ts_finalize_subtest + +ts_finalize diff --git a/tests/ts/libmount/optstr b/tests/ts/libmount/optstr index 26d9b73f4a..979517e060 100755 --- a/tests/ts/libmount/optstr +++ b/tests/ts/libmount/optstr @@ -8,9 +8,9 @@ TS_DESC="options string" . "$TS_TOPDIR"/functions.sh ts_init "$*" -TESTPROG="$TS_HELPER_LIBMOUNT_OPTSTR" +ts_check_test_command $TS_HELPER_LIBMOUNT_OPTSTR -[ -x $TESTPROG ] || ts_skip "test not compiled" +TESTPROG="$TS_HELPER_LIBMOUNT_OPTSTR" ts_init_subtest "append" ts_run $TESTPROG --append "aaa,bbb=BBB,context=\"foo,bar,gogo\",ccc" "ddd" &> $TS_OUTPUT @@ -28,6 +28,10 @@ ts_init_subtest "prepend" ts_run $TESTPROG --prepend "aaa,bbb=BBB,ccc" "ddd" &> $TS_OUTPUT ts_finalize_subtest +ts_init_subtest "prepend-list" +ts_run $TESTPROG --prepend "aaa,bbb=BBB,ccc" "ddd,eee=EEE,fff" &> $TS_OUTPUT +ts_finalize_subtest + ts_init_subtest "prepend-value" ts_run $TESTPROG --prepend "aaa,bbb=BBB,ccc" "ddd" "DDD" &> $TS_OUTPUT ts_finalize_subtest