From a294ae0eaeff0ad1c68f4ac214f3ebf94e2547cc Mon Sep 17 00:00:00 2001 From: wenzhi <732903873@qq.com> Date: Sun, 13 Jan 2019 13:49:28 +0800 Subject: [PATCH] change config check --- ..._check_config_change_default_config.golden | 126 ++++++++++++++++++ test/main.bats | 19 ++- 2 files changed, 144 insertions(+), 1 deletion(-) create mode 100644 test/fixture/test_check_config_change_default_config.golden diff --git a/test/fixture/test_check_config_change_default_config.golden b/test/fixture/test_check_config_change_default_config.golden new file mode 100644 index 0000000..7521915 --- /dev/null +++ b/test/fixture/test_check_config_change_default_config.golden @@ -0,0 +1,126 @@ +online-dsn: + user: online-test + password: '********' + net: tcp + addr: 192.168.12.200:3307 + schema: information_schema + charset: utf8mb4 + collation: utf8mb4_general_ci + loc: GMT + tls: dsfsfdsf + server-public-key: sdfsffsdfffffffwefwef + maxallowedpacket: 419437 + params: + charset: utf8mb4 + timeout: 60 + read-timeout: 70 + write-timeout: 80 + allow-native-passwords: false + allow-old-passwords: true + disable: false +test-dsn: + user: test-user + password: '********' + net: tcp + addr: 192.168.12.34:3309 + schema: information_schema + charset: utf8mb4 + collation: utf8mb4_general_ci + loc: GMT + tls: aabbbaa + server-public-key: this is a tset serverpublic + maxallowedpacket: 4194309 + params: + charset: utf8mb4 + timeout: 50 + read-timeout: 40 + write-timeout: 30 + allow-native-passwords: false + allow-old-passwords: true + disable: false +allow-online-as-test: true +drop-test-temporary: false +cleanup-test-database: true +only-syntax-check: true +sampling-statistic-target: 110 +sampling: true +sampling-condition: aaa +profiling: true +trace: true +explain: false +delimiter: ; +log-level: 5 +log-output: /dev/null +report-type: html +report-css: sdfs +report-javascript: sdfsd +report-title: SQL优化分析报告-test +markdown-extensions: 92 +markdown-html-flags: 10 +ignore-rules: +- COL.012 +rewrite-rules: +- delimiter +- orderbynull +- groupbyconst +- dmlorderby +- having +- star2columns +- insertcolumns +- distinctstar +blacklist: /tmp/blacklist +max-join-table-count: 12 +max-group-by-cols-count: 15 +max-distinct-count: 7 +max-index-cols-count: 2 +max-text-cols-count: 3 +max-total-rows: 9999991 +max-query-cost: 9992 +spaghetti-query-length: 2041 +allow-drop-index: true +max-in-count: 101 +max-index-bytes-percolumn: 762 +max-index-bytes: 3073 +allow-charsets: +- utf8 +- utf8mb4 +allow-collates: [] +allow-engines: +- innodb +- tokudb +max-index-count: 12 +max-column-count: 41 +max-value-count: 102 +index-prefix: idx_ +unique-key-prefix: uk_ +max-subquery-depth: 6 +max-varchar-length: 1022 +column-not-allow-type: +- boolean +min-cardinality: 2 +explain-sql-report-type: pretty +explain-type: extended +explain-format: traditional +explain-warn-select-type: +- "" +explain-warn-access-type: +- ALL +explain-max-keys: 31 +explain-min-keys: 10 +explain-max-rows: 10002 +explain-warn-extra: +- Using temporary +- Using filesort +explain-max-filtered: 120 +explain-warn-scalability: +- O(log(n)) +show-warnings: true +show-last-query-cost: true +query: "" +list-heuristic-rules: true +list-rewrite-rules: true +list-test-sqls: true +list-report-types: true +verbose: true +dry-run: false +max-pretty-sql-length: 1022 diff --git a/test/main.bats b/test/main.bats index 38fbfd2..a5a1f7d 100644 --- a/test/main.bats +++ b/test/main.bats @@ -2,33 +2,50 @@ load test_helper +# 1. 检查版本输出格式是否正确 +# 2. 检查版本是否为当天编译的 @test "Test soar version" { run ${SOAR_BIN} -version [ "$status" -eq 0 ] [ "${lines[0]%% *}" == "Version:" ] [ "${lines[1]%% *}" == "Branch:" ] [ "${lines[2]%% *}" == "Compile:" ] - [ $(expr "${lines[2]}" : "Compile: $(date +'%Y-%m-%d').*") -ne 0 ] + [ $(expr "${lines[2]}" : "Compile: $(date +'%Y-%m-%d').*") -ne 0 ] # 检查当前版本是否为今日编译的 } +# 3. 无参数执行是否正确 @test "No arguments prints message" { run ${SOAR_BIN} [ $status -eq 1 ] [ "${lines[0]}" == 'Args format error, use --help see how to use it!' ] } +# 4. 检查输出的默认值是否改变 soar -print-config 加log-outpt 是因为日志默认是相对路径 @test "Run default printconfig cases" { ${SOAR_BIN} -print-config -log-output=/dev/null > ${BATS_TMP_DIRNAME}/${BATS_TEST_NAME}.golden run golden_diff [ $status -eq 0 ] } +# 5. soar 使用 config 配置文件路径是否正确 @test "Check config cases" { run ${SOAR_BIN_ENV} -check-config [ $status -eq 0 ] [ -z ${output} ] } +# 6. soar 使用配置文件修改默认参数是否正确 +# 注意 不启用的配置为默认配置项目 +@test "check config change default config" { + ${SOAR_BIN} -config ${BATS_FIXTURE_DIRNAME}/${BATS_TEST_NAME}.golden -print-config -log-output=/dev/null > ${BATS_TMP_DIRNAME}/${BATS_TEST_NAME}.golden + # 去掉 2019/01/12 05:45:14.922 [D] [config.go:429] go-sql-driver/mysql.ParseDSN Error: invalid value / unknown server pub + sed -n '3,$p' ${BATS_TMP_DIRNAME}/test_check_config_change_default_config.golden > ${BATS_TMP_DIRNAME}/test_check_config_change_default_config.golden1 + mv ${BATS_TMP_DIRNAME}/test_check_config_change_default_config.golden1 ${BATS_TMP_DIRNAME}/test_check_config_change_default_config.golden + run golden_diff + [ $status -eq 0 ] +} + + @test "Syntax Check OK" { run ${SOAR_BIN} -query "select * from film" -only-syntax-check [ $status -eq 0 ] -- GitLab