tests: add test cases for -P and -p options.
authorYousong Zhou <yszhou4tech@gmail.com>
Tue, 31 Mar 2015 16:20:17 +0000 (00:20 +0800)
committerFelix Fietkau <nbd@openwrt.org>
Tue, 31 Mar 2015 16:42:22 +0000 (18:42 +0200)
test/references/options.delta.result [new file with mode: 0644]
test/tests.d/090_cli_options [new file with mode: 0644]

diff --git a/test/references/options.delta.result b/test/references/options.delta.result
new file mode 100644 (file)
index 0000000..3119b6f
--- /dev/null
@@ -0,0 +1,5 @@
+
+config sectype 'sec0'
+       list li0 '1'
+       list li0 '0'
+
diff --git a/test/tests.d/090_cli_options b/test/tests.d/090_cli_options
new file mode 100644 (file)
index 0000000..52052a3
--- /dev/null
@@ -0,0 +1,38 @@
+test_add_delta() {
+       local new_savedir="$TMP_DIR/new_savedir"
+       local config_delta="$CONFIG_DIR/delta"
+
+       # add normal changes
+       touch "$config_delta"
+       $UCI set delta.sec0=sectype
+       $UCI add_list delta.sec0.li0=0
+
+       # save new changes in "$new_savedir"
+       mkdir -p "$new_savedir"
+       touch "$new_savedir/delta"
+       $UCI -P "$new_savedir" set delta.sec0=sectype
+       $UCI -P "$new_savedir" add_list delta.sec0.li0=1
+
+       assertEquals "delta.sec0='sectype'
+delta.sec0.li0+='0'" "$($UCI changes)"
+
+       # check combined changes.  order matters here.
+       assertEquals "delta.sec0='sectype'
+delta.sec0.li0+='1'
+delta.sec0='sectype'
+delta.sec0.li0+='0'" "$($UCI -P "$new_savedir" changes)"
+
+       # check CLI_FLAG_NOCOMMIT with -P option.
+       $UCI -P "$new_savedir" commit
+       assertTrue "$?"
+       assertEquals "" "$(cat $config_delta)"
+
+       # check normal commit.
+       $UCI -p "$new_savedir" commit
+       assertTrue "$?"
+       assertSameFile "$REF_DIR/options.delta.result" "$config_delta"
+
+       rm -rf "$new_savedir"
+       rm -f "$config_delta"
+}
+