annotate tests/valgrind-checks.py @ 728:450223a8cff2 v0.22

+++++ v0.22
author Franz Glasner <fzglas.hg@dom66.de>
date Thu, 17 Aug 2023 09:07:00 +0200
parents 429a7d5002b8
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
623
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
2 r"""Checks to be run within Valgrind
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
3
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
4 """
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
5
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
6 from __future__ import print_function
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
7
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
8 import os
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
9
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
10 from _test_context import TESTDATADIR
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
11
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
12 import configmix
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
13
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
14
624
429a7d5002b8 With Valgrind: 100000 is way too much: use 10000
Franz Glasner <fzglas.hg@dom66.de>
parents: 623
diff changeset
15 NUM = 10000
623
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
16 WITH_JAIL = True
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
17
624
429a7d5002b8 With Valgrind: 100000 is way too much: use 10000
Franz Glasner <fzglas.hg@dom66.de>
parents: 623
diff changeset
18 DOTS = 1000
623
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
19
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
20
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
21 cfg = configmix.load(os.path.join(TESTDATADIR, "conf_perf.py"))
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
22
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
23 DEFAULT_DICT = {u"the": u"default"}
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
24
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
25
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
26 i = 1
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
27 while i <= NUM:
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
28
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
29 tmp1 = cfg.getvarl(u"tree1", u"tree2", u"key8")
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
30 tmp2 = cfg.getvarl_s(u"tree1", u"tree2", u"key8")
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
31 tmp3 = cfg.getvar(u"tree1.tree2.key8")
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
32 tmp4 = cfg.getvar_s(u"tree1.tree2.key8")
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
33
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
34 try:
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
35 tmp1 = cfg.getvarl(u"tree1", u"tree2", u"keyX")
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
36 except KeyError:
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
37 pass
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
38 else:
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
39 assert False
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
40 try:
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
41 tmp2 = cfg.getvarl_s(u"tree1", u"tree2", u"keyXX")
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
42 except KeyError:
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
43 pass
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
44 else:
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
45 assert False
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
46 try:
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
47 tmp3 = cfg.getvar(u"tree1.tree2.keyXXX")
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
48 except KeyError:
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
49 pass
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
50 else:
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
51 assert False
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
52 try:
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
53 tmp4 = cfg.getvar_s(u"tree1.tree2.keyXXXX")
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
54 except KeyError:
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
55 pass
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
56 else:
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
57 assert False
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
58
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
59 tmp1 = cfg.getvarl_s(u"tree1", u"tree2", u"key10")
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
60 # non-cacheable interpolation
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
61 tmp2 = cfg.getvarl_s(u"tree1", u"tree2", u"key12")
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
62 tmp3 = cfg.getvarl_s(u"tree1", u"tree2", u"key13")
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
63
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
64 tmp1 = cfg.getvar_s(u"tree1.tree2.key10")
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
65 # non-cacheable interpolation
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
66 tmp2 = cfg.getvar_s(u"tree1.tree2.key12")
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
67 tmp3 = cfg.getvar_s(u"tree1.tree2.key13")
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
68
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
69 assert("key2" in cfg)
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
70 assert((u"tree1", u"tree2", u"keyX") not in cfg)
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
71 assert((u"tree1", u"tree2", u"key8") in cfg)
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
72
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
73 tmp1 = cfg.getvarl(u"tree1", u"treeXXXX", default=DEFAULT_DICT)
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
74 assert(tmp1 is DEFAULT_DICT)
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
75 tmp2 = cfg.getvarl_s(u"tree1", u"treeXXXXXXX", default=DEFAULT_DICT)
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
76 assert(tmp2 is DEFAULT_DICT)
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
77 tmp3 = cfg.getvar(u"treeXXXXXXXXXXX", default=DEFAULT_DICT)
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
78 assert(tmp3 is DEFAULT_DICT)
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
79 tmp4 = cfg.getvar_s(u"treeXXXXXXXXXXXXXXXXXXX", default=DEFAULT_DICT)
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
80 assert(tmp4 is DEFAULT_DICT)
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
81
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
82 if WITH_JAIL:
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
83 jail = cfg.jailed(root=u"tree1.tree2")
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
84 assert(u"key5" in jail)
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
85 tmp1 = jail[u"key6"]
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
86 tmp2 = jail[(u"key8",)]
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
87
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
88 jail2 = cfg.jailed(rootpath=(u"tree1",))
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
89 assert((u"tree2", u"key9") in jail2)
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
90 tmp1 = jail2.getvarl_s(u"tree2")
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
91
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
92 tmp1 = jail2.getvar(u"tree3")
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
93 try:
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
94 tmp2 = jail2.getvar_s(u"tree3")
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
95 except KeyError:
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
96 pass
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
97 else:
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
98 assert False
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
99
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
100 try:
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
101 tmp1 = jail2.getvar(u"treeXXXX")
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
102 except KeyError:
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
103 pass
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
104 else:
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
105 assert False
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
106
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
107 if i % DOTS == 0:
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
108 print(".", end='', flush=True)
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
109
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
110 i += 1
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
111
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
112 jail = jail2 = None
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
113 tmp1 = tmp2 = tmp3 = tmp4 = None
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
114
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
115 print()
09e15af29d36 Add a script as test harness for Valgrind'ing the C extension
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
116 print("Done (loops: %d)." % (NUM,))