Mercurial > hgrepos > Python > libs > ConfigMix
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 |
| 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,)) |
