Mercurial > hgrepos > Python > libs > ConfigMix
diff 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 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/valgrind-checks.py Thu Jan 13 17:52:46 2022 +0100 @@ -0,0 +1,116 @@ +# -*- coding: utf-8 -*- +r"""Checks to be run within Valgrind + +""" + +from __future__ import print_function + +import os + +from _test_context import TESTDATADIR + +import configmix + + +NUM = 1000000 +WITH_JAIL = True + +DOTS = 10000 + + +cfg = configmix.load(os.path.join(TESTDATADIR, "conf_perf.py")) + +DEFAULT_DICT = {u"the": u"default"} + + +i = 1 +while i <= NUM: + + tmp1 = cfg.getvarl(u"tree1", u"tree2", u"key8") + tmp2 = cfg.getvarl_s(u"tree1", u"tree2", u"key8") + tmp3 = cfg.getvar(u"tree1.tree2.key8") + tmp4 = cfg.getvar_s(u"tree1.tree2.key8") + + try: + tmp1 = cfg.getvarl(u"tree1", u"tree2", u"keyX") + except KeyError: + pass + else: + assert False + try: + tmp2 = cfg.getvarl_s(u"tree1", u"tree2", u"keyXX") + except KeyError: + pass + else: + assert False + try: + tmp3 = cfg.getvar(u"tree1.tree2.keyXXX") + except KeyError: + pass + else: + assert False + try: + tmp4 = cfg.getvar_s(u"tree1.tree2.keyXXXX") + except KeyError: + pass + else: + assert False + + tmp1 = cfg.getvarl_s(u"tree1", u"tree2", u"key10") + # non-cacheable interpolation + tmp2 = cfg.getvarl_s(u"tree1", u"tree2", u"key12") + tmp3 = cfg.getvarl_s(u"tree1", u"tree2", u"key13") + + tmp1 = cfg.getvar_s(u"tree1.tree2.key10") + # non-cacheable interpolation + tmp2 = cfg.getvar_s(u"tree1.tree2.key12") + tmp3 = cfg.getvar_s(u"tree1.tree2.key13") + + assert("key2" in cfg) + assert((u"tree1", u"tree2", u"keyX") not in cfg) + assert((u"tree1", u"tree2", u"key8") in cfg) + + tmp1 = cfg.getvarl(u"tree1", u"treeXXXX", default=DEFAULT_DICT) + assert(tmp1 is DEFAULT_DICT) + tmp2 = cfg.getvarl_s(u"tree1", u"treeXXXXXXX", default=DEFAULT_DICT) + assert(tmp2 is DEFAULT_DICT) + tmp3 = cfg.getvar(u"treeXXXXXXXXXXX", default=DEFAULT_DICT) + assert(tmp3 is DEFAULT_DICT) + tmp4 = cfg.getvar_s(u"treeXXXXXXXXXXXXXXXXXXX", default=DEFAULT_DICT) + assert(tmp4 is DEFAULT_DICT) + + if WITH_JAIL: + jail = cfg.jailed(root=u"tree1.tree2") + assert(u"key5" in jail) + tmp1 = jail[u"key6"] + tmp2 = jail[(u"key8",)] + + jail2 = cfg.jailed(rootpath=(u"tree1",)) + assert((u"tree2", u"key9") in jail2) + tmp1 = jail2.getvarl_s(u"tree2") + + tmp1 = jail2.getvar(u"tree3") + try: + tmp2 = jail2.getvar_s(u"tree3") + except KeyError: + pass + else: + assert False + + try: + tmp1 = jail2.getvar(u"treeXXXX") + except KeyError: + pass + else: + assert False + + if i % DOTS == 0: + print(".", end='', flush=True) + + i += 1 + +jail = jail2 = None +tmp1 = tmp2 = tmp3 = tmp4 = None + +print() +print("Done (loops: %d)." % (NUM,))
