tests: jshn: add more test cases
authorPetr Štetiar <ynezz@true.cz>
Sat, 23 Nov 2019 22:51:20 +0000 (23:51 +0100)
committerPetr Štetiar <ynezz@true.cz>
Sun, 24 Nov 2019 12:26:58 +0000 (13:26 +0100)
In order to cover all command line options.

Signed-off-by: Petr Štetiar <ynezz@true.cz>
tests/cram/test_jshn.t

index 937c7e1055e8853d2c1f140ddfd68dd2009413a9..1881a3d639a5fdf65e2e4cc49f53bd8021600008 100644 (file)
@@ -23,3 +23,167 @@ test good json:
   json_add_object 'baz';
   json_add_string 'next' 'meep';
   json_close_object;
+
+test json from file:
+
+  $ echo '[]' > test.json; jshn -R test.json
+  Failed to parse message data
+  [1]
+
+  $ jshn -R nada.json
+  Error opening nada.json
+  [3]
+
+  $ echo '{"foo": "bar", "baz": {"next": "meep"}}' > test.json; jshn -R test.json
+  json_init;
+  json_add_string 'foo' 'bar';
+  json_add_object 'baz';
+  json_add_string 'next' 'meep';
+  json_close_object;
+
+test json formatting without prepared environment:
+
+  $ jshn -p procd -w
+  { }
+
+  $ jshn -i -p procd -w
+  {
+  \t (esc)
+  }
+
+  $ jshn -i -n -p procd -w
+  {
+  \t (esc)
+  } (no-eol)
+
+  $ jshn -p procd -o test.json; cat test.json
+  { }
+
+  $ jshn -i -p procd -o test.json; cat test.json
+  {
+  \t (esc)
+  }
+
+  $ jshn -i -n -p procd -o test.json; cat test.json
+  {
+  \t (esc)
+  } (no-eol)
+
+  $ chmod oug= test.json
+  $ jshn -i -n -p procd -o test.json
+  Error opening test.json
+  [3]
+  $ rm -f test.json
+
+test json formatting with prepared environment:
+
+  $ export procdJSON_CUR=J_V
+  $ export procdJ_A3_1=/sbin/urngd
+  $ export procdJ_T1_instance1=J_T2
+  $ export procdJ_T2_command=J_A3
+  $ export procdJ_V_data=J_T5
+  $ export procdJ_V_instances=J_T1
+  $ export procdJ_V_name=urngd
+  $ export procdJ_V_script=/etc/init.d/urngd
+  $ export procdJ_V_triggers=J_A4
+  $ export procdK_J_A3=1
+  $ export procdK_J_A4=
+  $ export procdK_J_T1=instance1
+  $ export procdK_J_T2=command
+  $ export procdK_J_T5=
+  $ export procdK_J_V="name script instances triggers data"
+  $ export procdT_J_A3_1=string
+  $ export procdT_J_T1_instance1=object
+  $ export procdT_J_T2_command=array
+  $ export procdT_J_V_data=object
+  $ export procdT_J_V_instances=object
+  $ export procdT_J_V_name=string
+  $ export procdT_J_V_script=string
+  $ export procdT_J_V_triggers=array
+
+  $ jshn -p procd -w
+  { "name": "urngd", "script": "\/etc\/init.d\/urngd", "instances": { "instance1": { "command": [ "\/sbin\/urngd" ] } }, "triggers": [ ], "data": { } }
+
+  $ jshn -i -p procd -w
+  {
+  \t"name": "urngd", (esc)
+  \t"script": "/etc/init.d/urngd", (esc)
+  \t"instances": { (esc)
+  \t\t"instance1": { (esc)
+  \t\t\t"command": [ (esc)
+  \t\t\t\t"/sbin/urngd" (esc)
+  \t\t\t] (esc)
+  \t\t} (esc)
+  \t}, (esc)
+  \t"triggers": [ (esc)
+  \t\t (esc)
+  \t], (esc)
+  \t"data": { (esc)
+  \t\t (esc)
+  \t} (esc)
+  }
+
+  $ jshn -n -i -p procd -w
+  {
+  \t"name": "urngd", (esc)
+  \t"script": "/etc/init.d/urngd", (esc)
+  \t"instances": { (esc)
+  \t\t"instance1": { (esc)
+  \t\t\t"command": [ (esc)
+  \t\t\t\t"/sbin/urngd" (esc)
+  \t\t\t] (esc)
+  \t\t} (esc)
+  \t}, (esc)
+  \t"triggers": [ (esc)
+  \t\t (esc)
+  \t], (esc)
+  \t"data": { (esc)
+  \t\t (esc)
+  \t} (esc)
+  } (no-eol)
+
+  $ jshn -p procd -o test.json; cat test.json
+  { "name": "urngd", "script": "\/etc\/init.d\/urngd", "instances": { "instance1": { "command": [ "\/sbin\/urngd" ] } }, "triggers": [ ], "data": { } }
+
+  $ jshn -i -p procd -o test.json; cat test.json
+  {
+  \t"name": "urngd", (esc)
+  \t"script": "/etc/init.d/urngd", (esc)
+  \t"instances": { (esc)
+  \t\t"instance1": { (esc)
+  \t\t\t"command": [ (esc)
+  \t\t\t\t"/sbin/urngd" (esc)
+  \t\t\t] (esc)
+  \t\t} (esc)
+  \t}, (esc)
+  \t"triggers": [ (esc)
+  \t\t (esc)
+  \t], (esc)
+  \t"data": { (esc)
+  \t\t (esc)
+  \t} (esc)
+  }
+
+  $ jshn -n -i -p procd -o test.json; cat test.json
+  {
+  \t"name": "urngd", (esc)
+  \t"script": "/etc/init.d/urngd", (esc)
+  \t"instances": { (esc)
+  \t\t"instance1": { (esc)
+  \t\t\t"command": [ (esc)
+  \t\t\t\t"/sbin/urngd" (esc)
+  \t\t\t] (esc)
+  \t\t} (esc)
+  \t}, (esc)
+  \t"triggers": [ (esc)
+  \t\t (esc)
+  \t], (esc)
+  \t"data": { (esc)
+  \t\t (esc)
+  \t} (esc)
+  } (no-eol)
+
+  $ chmod oug= test.json
+  $ jshn -n -i -p procd -o test.json
+  Error opening test.json
+  [3]