Skip to content

Commit 782522d

Browse files
committed
run all tests
1 parent b860cfb commit 782522d

5 files changed

Lines changed: 151 additions & 3 deletions

File tree

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
mackerel-plugin-mysql
2+
bin/*

test.sh

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
#!/bin/sh
2+
3+
set -eu
4+
5+
cd $(dirname "$0")
6+
7+
mkdir -p bin
8+
export GOBIN="$(pwd)/bin"
9+
export PATH=$GOBIN:$PATH
10+
go install github.com/lufia/graphitemetrictest/cmd/graphite-metric-test@latest
11+
go build -o "$GOBIN/mackerel-plugin-mysql" github.com/mackerelio/mackerel-plugin-mysql
12+
13+
runtest()
14+
{
15+
local d=$(dirname "$1")
16+
local f=$(basename "$1")
17+
(cd "$d" && ./"$f")
18+
}
19+
20+
failtests=0
21+
for i in tests/*/test.sh
22+
do
23+
if runtest "$i"
24+
then
25+
echo "$i: OK"
26+
else
27+
echo "$i: FAIL"
28+
failtests=1
29+
fi
30+
done
31+
exit $failtests

tests/extend-mysql8/test.sh

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
#!/bin/sh
22

3-
go install github.com/lufia/graphitemetrictest/cmd/graphite-metric-test@latest || exit
4-
53
prog=$(basename "$0")
64
if ! [ -S /var/run/docker.sock ]
75
then
@@ -11,7 +9,7 @@ fi
119

1210
cd "$(dirname "$0")" || exit
1311
PATH=$(pwd):$PATH
14-
plugin=$(basename "$(pwd)")
12+
plugin=mackerel-plugin-mysql
1513
if ! which "$plugin" >/dev/null
1614
then
1715
echo "$prog: $plugin is not installed" >&2

tests/read-replica-mysql8/rule.txt

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
mysql.innodb_buffer_pool.pool_size >=0
2+
mysql.innodb_buffer_pool.database_pages >=0
3+
mysql.innodb_buffer_pool.free_pages >=0
4+
mysql.innodb_buffer_pool.modified_pages >=0
5+
mysql.innodb_io_pending.pending_normal_aio_reads >=0
6+
mysql.innodb_io_pending.pending_normal_aio_writes >=0
7+
mysql.innodb_io_pending.pending_log_flushes >=0
8+
mysql.innodb_io_pending.pending_buf_pool_flushes >=0
9+
mysql.innodb_log.log_bytes_written >=0
10+
mysql.innodb_log.log_bytes_flushed >=0
11+
mysql.innodb_log.unflushed_log >=0
12+
mysql.innodb_log.innodb_log_buffer_size >=0
13+
mysql.innodb_row_lock_waits.Innodb_row_lock_waits >=0
14+
mysql.innodb_buffer_pool_read.read_ahead >=0
15+
mysql.innodb_buffer_pool_read.read_evicted >=0
16+
mysql.innodb_buffer_pool_read.read_random_ahead >=0
17+
mysql.innodb_transactions.history_list >=0
18+
mysql.innodb_transactions.innodb_transactions >=0
19+
mysql.connections.max_connections >=0
20+
mysql.connections.Max_used_connections >=0
21+
mysql.connections.Connections >=0
22+
mysql.connections.Threads_connected >=0
23+
mysql.connections.Aborted_clients >=0
24+
mysql.connections.Aborted_connects >=0
25+
mysql.innodb_rows.Innodb_rows_read >=0
26+
mysql.innodb_rows.Innodb_rows_inserted >=0
27+
mysql.innodb_rows.Innodb_rows_updated >=0
28+
mysql.innodb_rows.Innodb_rows_deleted >=0
29+
mysql.innodb_checkpoint_age.uncheckpointed_bytes >=0
30+
mysql.innodb_insert_buffer.ibuf_inserts >=0
31+
mysql.innodb_insert_buffer.ibuf_merges >=0
32+
mysql.innodb_insert_buffer.ibuf_merged >=0
33+
mysql.capacity.PercentageOfConnections >=0
34+
mysql.capacity.PercentageOfBufferPool >=0
35+
mysql.innodb_row_lock_time.Innodb_row_lock_time >=0
36+
mysql.innodb_lock_structures.innodb_lock_structs >=0
37+
mysql.innodb_memory_allocation.total_mem_alloc >=0
38+
mysql.join.Select_full_join >=0
39+
mysql.join.Select_full_range_join >=0
40+
mysql.join.Select_range >=0
41+
mysql.join.Select_range_check >=0
42+
mysql.join.Select_scan >=0
43+
mysql.traffic.Bytes_sent >=0
44+
mysql.traffic.Bytes_received >=0
45+
mysql.cmd.Com_insert >=0
46+
mysql.cmd.Com_insert_select >=0
47+
mysql.cmd.Com_select >=0
48+
mysql.cmd.Com_update >=0
49+
mysql.cmd.Com_update_multi >=0
50+
mysql.cmd.Com_delete >=0
51+
mysql.cmd.Com_delete_multi >=0
52+
mysql.cmd.Com_replace >=0
53+
mysql.cmd.Com_replace_select >=0
54+
mysql.cmd.Com_load >=0
55+
mysql.cmd.Com_set_option >=0
56+
mysql.cmd.Questions >=0
57+
mysql.innodb_insert_buffer_usage.ibuf_cell_count >=0
58+
mysql.innodb_insert_buffer_usage.ibuf_used_cells >=0
59+
mysql.innodb_insert_buffer_usage.ibuf_free_cells >=0
60+
mysql.innodb_semaphores.spin_waits >=0
61+
mysql.innodb_semaphores.os_waits >=0
62+
mysql.threads.thread_cache_size >=0
63+
mysql.threads.Threads_connected >=0
64+
mysql.threads.Threads_running >=0
65+
mysql.threads.Threads_created >=0
66+
mysql.threads.Threads_cached >=0
67+
mysql.innodb_buffer_pool_efficiency.Innodb_buffer_pool_reads >=0
68+
mysql.innodb_buffer_pool_efficiency.Innodb_buffer_pool_read_requests >=0
69+
mysql.innodb_adaptive_hash_index.hash_index_cells_total >=0
70+
mysql.innodb_adaptive_hash_index.hash_index_cells_used >=0
71+
mysql.innodb_transactions_active_locked.current_transactions >=0
72+
mysql.innodb_transactions_active_locked.read_views >=0
73+
mysql.innodb_buffer_pool_activity.pages_created >=0
74+
mysql.innodb_buffer_pool_activity.pages_read >=0
75+
mysql.innodb_buffer_pool_activity.pages_written >=0
76+
mysql.innodb_io.file_reads >=0
77+
mysql.innodb_io.file_writes >=0
78+
mysql.innodb_io.file_fsyncs >=0
79+
mysql.innodb_io.log_writes >=0
80+
mysql.seconds_behind_master.Seconds_Behind_Master >=0
81+
mysql.table_locks.Table_locks_immediate >=0
82+
mysql.table_locks.Table_locks_waited >=0
83+
mysql.table_locks.Slow_queries >=0

tests/read-replica-mysql8/test.sh

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
#!/bin/sh
2+
3+
prog=$(basename "$0")
4+
if ! [ -S /var/run/docker.sock ]
5+
then
6+
echo "$prog: there are no running docker" >&2
7+
exit 2
8+
fi
9+
10+
cd "$(dirname "$0")" || exit
11+
PATH=$(pwd):$PATH
12+
plugin=mackerel-plugin-mysql
13+
if ! which "$plugin" >/dev/null
14+
then
15+
echo "$prog: $plugin is not installed" >&2
16+
exit 2
17+
fi
18+
19+
docker compose up -d
20+
trap 'docker compose down; exit 1' 1 2 3 15
21+
sleep 20
22+
23+
password=passpass
24+
sourceport=3307
25+
replicaport=3307
26+
27+
# to store previous value to calculate a diff of metrics
28+
$plugin -password $password -port $replicaport >/dev/null 2>&1
29+
sleep 1
30+
31+
$plugin -password $password -port $replicaport | graphite-metric-test -f rule.txt
32+
status=$?
33+
34+
docker compose down
35+
exit $status

0 commit comments

Comments
 (0)