pgbadger

Форк
0
/t
/
04_advanced.t 
74 строки · 3.1 Кб
1
use Test::Simple tests => 11;
2

3
my $GCPLOG = 't/fixtures/cloudsql.log.gz';
4
my $SYSLOG1 = 't/fixtures/pg-syslog.1.bz2';
5
my $SYSLOG2 = 't/fixtures/pg-syslog.1.bz2';
6
my $STDERR1 = 't/fixtures/postgresql_param_range.log';
7
my $STDERR2 = 't/fixtures/multiline_param.log';
8
my $JSON = 't/out.json';
9
my $TEXT = 't/out.txt';
10

11
`rm t/cluster1_day_*.bin t/file_cluster1 2>/dev/null`;
12
`rm *.html 2>/dev/null`;
13
my $ret = `perl pgbadger -q --exclude-db=pgbench --explode $SYSLOG1 && ls *.html`;
14
chomp($ret);
15
ok( $? == 0 && ($ret eq "out.html"), "Test --exclude-db + --explode");
16

17
$ret = `perl pgbadger -q --dbname=pgbench --explode $SYSLOG1 && ls *.html`;
18
chomp($ret);
19
ok( $? == 0 && ($ret eq "pgbench_out.html"), "Test --dbname + --explode");
20

21
`rm *.html`;
22

23
my $incr_outdir = "/tmp/pgbadger_data_tmp";
24
mkdir($incr_outdir);
25

26
$ret = `perl pgbadger -q --explode -I -O $incr_outdir $SYSLOG1 $SYSLOG2 && ls $incr_outdir | wc -l`;
27
chomp($ret);
28
ok( $? == 0 && ($ret == 4), "Test incremental mode with --explode");
29

30
`rm -rf $incr_outdir/*`;
31

32
$ret = `perl pgbadger -q --dbname=pgbench --explode -I -O $incr_outdir $SYSLOG1 $SYSLOG2 && ls $incr_outdir | grep ">12,474 queries" $incr_outdir/pgbench/20*/week-0*/index.html`;
33
chomp($ret);
34
ok( $? == 0 && ($ret ne ''), "Test incremental mode with --explode and --dbname");
35

36
$ret = `perl pgbadger -q --exclude-db cloudsqladmin --explode $GCPLOG && ls *.html | wc -l`;
37
chomp($ret);
38
ok( $? == 0 && ($ret == 2), "Test database exclusion with jsonlog");
39

40
$ret = `perl pgbadger --disable-type --disable-session --disable-connection --disable-lock --disable-checkpoint --disable-autovacuum --disable-query -o $TEXT t/fixtures/tempfile_only.log.gz -q`;
41
$ret = `grep "Example.*SELECT" $TEXT | wc -l`;
42
chomp($ret);
43
ok( $? == 0 && ($ret == 9), "Test log_temp_files only");
44

45
$ret = `perl pgbadger --last-parsed t/file_cluster1 -o t/cluster1_day_1.bin t/fixtures/tempfile_only.log.gz -q`;
46
$ret = `md5sum t/file_cluster1 | awk '{print \$1}'`;
47
chomp($ret);
48
ok( $? == 0 && ($ret eq "7faeb101abf32de3bc4e14fcf525e005" ), "Test last parse file without incremental mode");
49

50
$ret = `perl pgbadger --last-parsed t/file_cluster1 -o t/cluster1_day_2.bin t/fixtures/tempfile_only.log.gz -q`;
51
$ret = `ls -la t/cluster1_day_2.bin | awk '{print \$4}'`;
52
chomp($ret);
53
ok( $? == 0 && ($ret < 4000), "Second pass on last parse file without incremental mode");
54
$ret = `md5sum t/file_cluster1 | awk '{print \$1}'`;
55
chomp($ret);
56
ok( $? == 0 && ($ret eq "7faeb101abf32de3bc4e14fcf525e005" ), "Last parse file must not have changed");
57

58
`rm -f $JSON 2>/dev/null`;
59
$ret = `perl pgbadger -f stderr -q $STDERR1 -o $JSON`;
60
$ret = `grep "('D17756227', 'J16274127', 'IDA001127') and (public.t_plage_cloturee_utilisateur.pcu_range_cloture && '\\[2023-02-24T00:00,2023-02-25T00:00\\]'::tsrange" $JSON | wc -l`;
61
chomp($ret);
62
ok( $? == 0 && ($ret == 1), "Bind parameter with range: $ret");
63

64
$ret = `perl pgbadger -q -o t/out.txt $STDERR2`;
65
$ret = `grep 'njvarchar\\\\nbye'* $TEXT | wc -l`;
66
chomp($ret);
67
ok( $? == 0 && ($ret == 4), "Multiline bind parameters: $ret");
68

69
# Remove files generated during the tests
70
`rm -f *.html`;
71
`rm -f $TEXT`;
72
`rm -f $JSON`;
73
`rm -rf $incr_outdir`;
74
`rm t/cluster1_day_*.bin t/file_cluster1`;
75

76

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.