]> sourceware.org Git - lvm2.git/commitdiff
tests: add tests for autoswitching to JSON format for log messages 11/head 1385984161 1386311139
authorPeter Rajnoha <prajnoha@redhat.com>
Mon, 3 Jun 2024 12:54:02 +0000 (14:54 +0200)
committerMarian Csontos <marian.csontos@gmail.com>
Wed, 24 Jul 2024 09:50:26 +0000 (09:50 +0000)
test/shell/report-format.sh

index e02d61b278718258395aa46f3d73884b0965c4dc..99e3e9af956da4ffe9a051bf0e048c884e96b2cf 100644 (file)
@@ -26,6 +26,39 @@ lvcreate -l1 -T $vg/$lv1
 lvcreate -l1 -n $lv2 --addtag lv_tag1 -an $vg
 lvcreate -l1 -n $lv3 --addtag lv_tag3 --addtag lv_tag1 --addtag lv_tag2 $vg
 
+check_json_vs_log() {
+       local format_param
+       local log_output=$2
+       local extra_cmd_line=$3
+
+       if [ -z $1 ]; then
+               format_param=""
+       else
+               format_param="--reportformat $1"
+       fi
+
+       not lvs $format_param $extra_cmd_line -o name $vg/lvolX 2>&1 | tee "$OUT_LOG_FILE"
+
+       if [ "$log_output" = "log_in_report" ]; then
+               #  {
+               #      "report": [
+               #       ...
+               #      ]
+               #      "log": [
+               #        { ... "log_message": "Failed to find logical volume" ...},
+               #        ...
+               #  }
+               grep -E "^[[:space:]]*\"log\": \[" out
+               grep -E "^[[:space:]]*\{.*\"log_message\":\"Failed to find logical volume.*\}" out
+       elif [ "$log_output" = "direct_log" ]; then
+               # Failed to find logical volume ...
+               not grep -E "^[[:space:]]*\"log\": \[" out
+               grep -E "[[:space:]]*Failed to find logical volume" out
+       else
+               false
+       fi
+}
+
 aux lvmconf "report/output_format = basic"
 lvs -o name,kernel_major,data_percent,tags | tee "$OUT_LOG_FILE"
 
@@ -39,6 +72,14 @@ grep -E "^[[:space:]]*${lv1}[[:space:]]*[[:digit:]]+[[:space:]]*[[:digit:]]+.[[:
 grep -E "^[[:space:]]*${lv2}[[:space:]]*-1[[:space:]]*lv_tag1[[:space:]]*\$" out
 grep -E "^[[:space:]]*${lv3}[[:space:]]*[[:digit:]]+[[:space:]]*lv_tag1,lv_tag2,lv_tag3\$" out
 
+check_json_vs_log "" direct_log ""
+check_json_vs_log "" direct_log "--config log/report_command_log=1"
+
+check_json_vs_log json log_in_report ""
+check_json_vs_log json_std log_in_report ""
+
+check_json_vs_log json direct_log "--config log/report_command_log=0"
+check_json_vs_log json_std direct_log "--config log/report_command_log=0"
 
 aux lvmconf "report/output_format = json"
 lvs -o name,kernel_major,data_percent,tags | tee "$OUT_LOG_FILE"
@@ -57,6 +98,9 @@ grep -E "^[[:space:]]*{\"lv_name\":\"$lv1\", \"lv_kernel_major\":\"[[:digit:]]+\
 grep -E "^[[:space:]]*{\"lv_name\":\"$lv2\", \"lv_kernel_major\":\"-1\", \"data_percent\":\"\", \"lv_tags\":\"lv_tag1\"},\$" out
 grep -E "^[[:space:]]*{\"lv_name\":\"$lv3\", \"lv_kernel_major\":\"[[:digit:]]+\", \"data_percent\":\"\", \"lv_tags\":\"lv_tag1,lv_tag2,lv_tag3\"}\$" out
 
+check_json_vs_log "" log_in_report ""
+check_json_vs_log "" direct_log "--config log/report_command_log=0"
+
 aux lvmconf "report/output_format = json_std"
 lvs -o name,kernel_major,data_percent,tags | tee "$OUT_LOG_FILE"
 #  {
@@ -74,4 +118,15 @@ grep -E "^[[:space:]]*{\"lv_name\":\"$lv1\", \"lv_kernel_major\":[[:digit:]]+, \
 grep -E "^[[:space:]]*{\"lv_name\":\"$lv2\", \"lv_kernel_major\":-1, \"data_percent\":null, \"lv_tags\":\[\"lv_tag1\"\]},\$" out
 grep -E "^[[:space:]]*{\"lv_name\":\"$lv3\", \"lv_kernel_major\":[[:digit:]]+, \"data_percent\":null, \"lv_tags\":\[\"lv_tag1\",\"lv_tag2\",\"lv_tag3\"\]}\$" out
 
+check_json_vs_log "" log_in_report ""
+check_json_vs_log "" direct_log "--config log/report_command_log=0"
+
+aux lvmconf "log/report_command_log = 0"
+check_json_vs_log "" direct_log ""
+check_json_vs_log "" log_in_report "--config log/report_command_log=1"
+
+aux lvmconf "log/report_command_log = 1"
+check_json_vs_log "" log_in_report ""
+check_json_vs_log "" direct_log "--config log/report_command_log=0"
+
 vgremove -ff $vg
This page took 0.043502 seconds and 5 git commands to generate.