annotate tests/valgrind-checks.py @ 654:0d6673d06c2c

Add support for using "tomllib" (in Python's stdlib since 3.11) and "tomli" TOML packages. They are preferred if they are found to be installed. But note that the declared dependency for the "toml" extra nevertheless is the "toml" package. Because it is available for all supported Python versions. So use Python 3.11+ or install "tomli" manually if you want to use the alternate packages.
author Franz Glasner <fzglas.hg@dom66.de>
date Thu, 19 May 2022 22:10:59 +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,))