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