tests: add test cases for -P and -p options.
[project/uci.git] / test / tests.d / 090_cli_options
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"
+}
+