From daf554dbeabf0957a25c9e37488d42c047c0ce23 Mon Sep 17 00:00:00 2001 From: Andrew Dunstan Date: Tue, 9 Apr 2024 14:23:20 -0400 Subject: [PATCH] Add a TAP test for test_json_parser_perf This just makes sure the test can run with a single iteration. A real performance test would test with many more. --- src/test/modules/test_json_parser/meson.build | 3 +- .../t/004_test_parser_perf.pl | 35 +++++++++++++++++++ 2 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 src/test/modules/test_json_parser/t/004_test_parser_perf.pl diff --git a/src/test/modules/test_json_parser/meson.build b/src/test/modules/test_json_parser/meson.build index 0e9c3e0698..b224f3e07e 100644 --- a/src/test/modules/test_json_parser/meson.build +++ b/src/test/modules/test_json_parser/meson.build @@ -46,7 +46,8 @@ tests += { 'tests': [ 't/001_test_json_parser_incremental.pl', 't/002_inline.pl', - 't/003_test_semantic.pl' + 't/003_test_semantic.pl', + 't/004_test_parser_perf.pl' ], }, } diff --git a/src/test/modules/test_json_parser/t/004_test_parser_perf.pl b/src/test/modules/test_json_parser/t/004_test_parser_perf.pl new file mode 100644 index 0000000000..ec322c1391 --- /dev/null +++ b/src/test/modules/test_json_parser/t/004_test_parser_perf.pl @@ -0,0 +1,35 @@ + +use strict; +use warnings; + +use PostgreSQL::Test::Utils; +use Test::More; +use FindBin; + +use File::Temp qw(tempfile); + +my $test_file = "$FindBin::RealBin/../tiny.json"; + +my $exe = "test_json_parser_perf"; + +my $contents = slurp_file($test_file); + +my ($fh, $fname) = tempfile(UNLINK => 1); + +# repeat the input json file 50 times in an array + +print $fh, '[', $contents , ",$contents" x 49 , ']'; + +close($fh); + +# but only do one iteration + +my ($result) = run_log([ $exe, "1", $fname ] ); + +ok($result == 0, "perf test runs with RD parser"); + +$result = run_log([ $exe, "-i" , "1", $fname ]); + +ok($result == 0, "perf test runs with table driven parser"); + +done_testing();