- 03 Nov, 2020 2 commits
-
-
Kirill Smelkov authored
Otherwise when /bin/sh is dash it fails with t/tfault-run: 35: test: on_pagefault: unexpected operator
-
Kirill Smelkov authored
Otherwise, if previous test.fault failed, tfault-run fails to start, e.g. >>> test.fault $ make test.fault # MAKEFLAGS=-j1 x86_64-linux-gnu-gcc -pthread -g -Wall -D_GNU_SOURCE -std=gnu99 -fplan9-extensions -Wno-declaration-after-statement -Wno-error=declaration-after-statement -Iinclude -I3rdparty/ccan -I3rdparty/include bigfile/tests/tfault.c lib/bug.c lib/utils.c 3rdparty/ccan/ccan/tap/tap.c -o bigfile/tests/tfault.t t/tfault-run bigfile/tests/tfault.t faultr on_pagefault mkdir: cannot create directory ‘t/tfault-run.faultr’: File exists Makefile:186: recipe for target 'faultr.tfault' failed make: *** [faultr.tfault] Error 1 rm bigfile/tests/tfault.t error test.fault 0.433s # 1t 1e 0f 0s
-
- 11 Oct, 2020 3 commits
-
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
- 16 Dec, 2019 1 commit
-
-
Kirill Smelkov authored
-
- 04 Dec, 2019 1 commit
-
-
Kirill Smelkov authored
We are going to add C++ parts to wendelin.core soon. Mark all current functionality with `extern "C"` as a preparatory step.
-
- 03 Dec, 2019 1 commit
-
-
Kirill Smelkov authored
-
- 12 Jul, 2019 1 commit
-
-
Kirill Smelkov authored
-
- 09 Jul, 2019 1 commit
-
-
Kirill Smelkov authored
-
- 08 Jul, 2019 1 commit
-
-
Kirill Smelkov authored
Else on-heap allocated RAM object is leaked. Fixes e.g. the following error on ASAN: Direct leak of 56 byte(s) in 1 object(s) allocated from: #0 0x7fc9ef390518 in calloc (/usr/lib/x86_64-linux-gnu/libasan.so.5+0xe9518) #1 0x555ca792f309 in zalloc include/wendelin/utils.h:67 #2 0x555ca7935f9a in ram_limited_new bigfile/tests/../../t/t_utils.c:35 #3 0x555ca793a0ba in test_file_access_synthetic bigfile/tests/test_virtmem.c:292 #4 0x555ca7967bc4 in main bigfile/tests/test_virtmem.c:1121 #5 0x7fc9ef0e909a in __libc_start_main ../csu/libc-start.c:308
-
- 03 May, 2019 2 commits
-
-
Kirill Smelkov authored
This continues 6ab95220 (t/qemu-runlinux: Issue terminal resize before running program) and fully initializes terminal before spawning user application. This has practical effect to restore line wrapping for xterm, as kernel, initially assuming it has "linux" type terminal, somehow messes xterm settings: before the patch lines that were wider than terminal width were not wrapped and characters in the last position were printed over each other. After the patch printed lines are automatically wrapped and test output is not lost. Tput hint found here: https://unix.stackexchange.com/questions/105958
-
Kirill Smelkov authored
-
- 17 Mar, 2019 2 commits
-
-
Kirill Smelkov authored
0: ERROR+ on boot/run 1: INFO+ on run 2: INFO+ on boot/run 3: DEBUG+ on boot/run It is convenient not to see large kernel boot log on every test run. "1" (single -v) is also convenient: one can skip the boot log but still see details of what is going on when test workload is run. -vv and -vvv are there to see full picture.
-
Kirill Smelkov authored
-
- 27 Feb, 2019 3 commits
-
-
Kirill Smelkov authored
bpf is needed for tools like bpftrace. fusectl is needed to observe things like /sys/fs/fuse/connections/X/waiting.
-
Kirill Smelkov authored
Else program inside sees default terminal settings to be 80x25, while after the patch it sees correct settings. Still something is not completely right with terminal settings, as e.g. vsplit is not working correctly in vim (vertical ruler is not straight).
-
Kirill Smelkov authored
Graphics mode runs in another window with its own terminal emulation, so propagating e.g. TERM=xterm to where it is emulated as TERM=linux is not correct.
-
- 13 Feb, 2019 2 commits
-
-
Kirill Smelkov authored
Continuing 76d8f76d (Script to run compiled linux kernel with root fs mounted from host) update the script to run/debug linux inside QEMU: - teach it to run specified program + args, instead of hardcoded /bin/sh; - before tailing to user program, builtin init mounts /proc, /sys, ... inside - previously it was /proc, /sys from host seen on those mountpoints and it was very misleading - e.g. ps was showing processes from host, not inside, etc. - builtin init also cares to run specified program with the same current directory that was current on host, and environments such as $HOME, $PATH, $TERM, ... are also propagated. - allow to optionally run QEMU with graphics, instead of stdout only; - increase available RAM from 128M to 512M (with 128M running py.test inside is failing with fork: not enough memory). This updated version was useful to debug WCFS(*) & FUSE issues by running kirr@deco:~/src/wendelin/wendelin.core/wcfs$ ../t/qemu-runlinux ~/src/linux/linux/arch/x86_64/boot/bzImage py.test -vsx -k test_wcfs See https://marc.info/?l=linux-fsdevel&m=155000277921155&w=2 for details. (*) WCFS is still being draft and worked on t branch.
-
Kirill Smelkov authored
-
- 12 Feb, 2019 1 commit
-
-
Kirill Smelkov authored
-
- 11 Feb, 2019 5 commits
-
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
- 26 Oct, 2018 1 commit
-
-
Kirill Smelkov authored
Currently fails with: /home/kirr/src/wendelin/wendelin.core/lib/xnumpy.py in restructure(arr, dtype) 82 print 'stridev:', stridev 83 #return np.ndarray.__new__(type(arr), shape, dtype, buffer(arr), 0, stridev) ---> 84 return np.ndarray(shape, dtype, buffer(arr), 0, stridev) TypeError: expected a single-segment buffer object
-
- 11 Oct, 2018 1 commit
-
-
Kirill Smelkov authored
-
- 04 Jul, 2018 1 commit
-
-
Kirill Smelkov authored
So that it can be available to everyone and in particular B & friends to be available from introduced importable golang.testing package. The move itself: pygolang@9bf03d9c While moving the code was restructured / improved a bit and py.bench interface reworked to mimic `go test -bench` in defaults.
-
- 26 Jun, 2018 2 commits
-
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
- 12 Dec, 2017 1 commit
-
-
Kirill Smelkov authored
Benchmark the time it takes for virtmem to handle pagefault with noop loadblk for loadblk both implemented in C and in Python. On my computer it is: name µs/op PagefaultC 269 ± 0% pagefault_py 291 ± 0% Quite a big time in other words. It turned out to be mostly spent in fallocate'ing pages on tmpfs from /dev/shm. Part of the above 269 µs/op is taken by freeing (reclaiming) pages back when benchmarking work size exceed /dev/shm size, and part to allocating. If I limit the work size (via npage in benchmem.c) to be less than whole /dev/shm it starts to be ~ 170 µs/op and with additional tracing it shows as something like this: .. on_pagefault_start 0.954 µs .. vma_on_pagefault_pre 0.954 µs .. ramh_alloc_page_pre 0.954 µs .. ramh_alloc_page 169.992 µs .. vma_on_pagefault 172.853 µs .. vma_on_pagefault_pre 172.853 µs .. vma_on_pagefault 174.046 µs .. on_pagefault_end 174.046 µs .. whole: 171.900 µs so almost all time is spent in ramh_alloc_page which is doing the fallocate: https://lab.nexedi.com/nexedi/wendelin.core/blob/f11386a4/bigfile/ram_shmfs.c#L125 Simple benchmark[1] confirmed it is indeed the case for fallocate(tmpfs) to be relatively slow[2] (and that for recent kernels it regressed somewhat compared to Linux 3.16). Profile flamegraph for that benchmark[3] shows internal loading of shmem_fallocate which for 1 hardware page is not that too slow (e.g. <1µs) but when a request comes for a region internally performs it page by page and so accumulates that ~ 170µs for 2M. I've tried to briefly rerun the benchmark with huge pages activated on /dev/shm via mount /dev/shm -o huge=always,remount as both regular user and as root but it was executing several times slower. Probably something to investigate more later. [1] https://lab.nexedi.com/kirr/misc/blob/4f84a06e/tmpfs/t_fallocate.c [2] https://lab.nexedi.com/kirr/misc/blob/4f84a06e/tmpfs/1.txt [3] https://lab.nexedi.com/kirr/misc/raw/4f84a06e/tmpfs/fallocate-2M-nohuge.svg
-
- 06 Dec, 2017 1 commit
-
-
Kirill Smelkov authored
Rework py.bench output to match output of Go benchmarking[1] so that go tools like benchstat & friends could be used to analyze and compare the timings. Before patch: ============================= test session starts ============================== platform linux2 -- Python 2.7.14, pytest-3.3.2.dev2+g88f2cc9b.d20171206, py-1.5.2, pluggy-0.6.0 rootdir: /home/kirr/src/wendelin/wendelin.core, inifile: collected 11 items pymod: bigfile/tests/bench_0virtmem.py bench_file_mmapread_hole 0.21 (0.39 0.22 0.21) bench_file_read_hole 0.24 (0.24 0.24 0.24) bench_file_readbig_hole 0.30 (0.30 0.31 0.31) bench_bigf_read_hole 0.44 (0.44 0.45 0.44) bench_file_mmapwrite0 0.13 (0.13 0.13 0.13) bench_file_write55 0.08 (0.08 0.08 0.08) bench_bigf_writeff 0.47 (0.47 0.48 0.47) bench_file_mmapread 0.22 (0.22 0.22 0.22) bench_file_read 0.25 (0.25 0.25 0.26) bench_file_readbig 0.31 (0.31 0.31 0.31) bench_bigf_read 0.44 (0.45 0.44 0.44) ========================== 11 passed in 12.92 seconds ========================== After patch: ============================= test session starts ============================== platform linux2 -- Python 2.7.14, pytest-3.3.2.dev2+g88f2cc9b.d20171206, py-1.5.2, pluggy-0.6.0 rootdir: /home/kirr/src/wendelin/wendelin.core, inifile: collected 11 items pymod: bigfile/tests/bench_0virtmem.py Benchmarkfile_mmapread_hole 1 385839.939 µs/op Benchmarkfile_mmapread_hole 1 219214.916 µs/op Benchmarkfile_mmapread_hole 1 210209.131 µs/op Benchmarkfile_read_hole 1 238974.094 µs/op Benchmarkfile_read_hole 1 237294.197 µs/op Benchmarkfile_read_hole 1 238043.070 µs/op Benchmarkfile_readbig_hole 1 301330.090 µs/op Benchmarkfile_readbig_hole 1 301767.111 µs/op Benchmarkfile_readbig_hole 1 301135.063 µs/op Benchmarkbigf_read_hole 1 434718.132 µs/op Benchmarkbigf_read_hole 1 435019.970 µs/op Benchmarkbigf_read_hole 1 434729.099 µs/op Benchmarkfile_mmapwrite0 1 126471.996 µs/op Benchmarkfile_mmapwrite0 1 125886.917 µs/op Benchmarkfile_mmapwrite0 1 125730.038 µs/op Benchmarkfile_write55 1 86760.044 µs/op Benchmarkfile_write55 1 87507.010 µs/op Benchmarkfile_write55 1 87735.891 µs/op Benchmarkbigf_writeff 1 448369.980 µs/op Benchmarkbigf_writeff 1 448238.850 µs/op Benchmarkbigf_writeff 1 447322.845 µs/op Benchmarkfile_mmapread 1 207049.131 µs/op Benchmarkfile_mmapread 1 207813.978 µs/op Benchmarkfile_mmapread 1 210857.868 µs/op Benchmarkfile_read 1 238364.935 µs/op Benchmarkfile_read 1 236908.913 µs/op Benchmarkfile_read 1 238602.161 µs/op Benchmarkfile_readbig 1 303429.842 µs/op Benchmarkfile_readbig 1 302191.973 µs/op Benchmarkfile_readbig 1 304115.057 µs/op Benchmarkbigf_read 1 435079.098 µs/op Benchmarkbigf_read 1 434193.850 µs/op Benchmarkbigf_read 1 434813.976 µs/op ========================== 11 passed in 12.54 seconds ========================== benchstat of new output: name µs/op file_mmapread_hole 272k ±42% file_read_hole 238k ± 0% file_readbig_hole 301k ± 0% bigf_read_hole 435k ± 0% file_mmapwrite0 126k ± 0% file_write55 87.3k ± 1% bigf_writeff 448k ± 0% file_mmapread 209k ± 1% file_read 238k ± 0% file_readbig 303k ± 0% bigf_read 435k ± 0% -------- Not only the output format is reworked here, but also b fixture is added to BenchPlugin so that functions which accept it as arg, can run the benchmark b.N times, can stop/restart timer etc - similar to https://golang.org/pkg/testing/#B . If a bench_* func does not accept b, B is still created, but b.N is assumed to be always 1. The first benchmark which actually uses b will come in the next patch. [1] https://github.com/golang/proposal/blob/master/design/14313-benchmark-format.md
-
- 04 Dec, 2017 2 commits
-
-
Kirill Smelkov authored
For several benchmarks in a python module instead of always printing whole benchmark function path (nodeid in pytest speak), first print pymod: modulename header, and then only function names. Before patch: ============================= test session starts ============================== platform linux2 -- Python 2.7.14, pytest-3.3.0, py-1.5.2, pluggy-0.6.0 rootdir: /home/kirr/src/wendelin/wendelin.core, inifile: collected 14 items bigfile/tests/bench_0virtmem.py::bench_file_mmapread_hole 0.22 (0.39 0.22 0.22) bigfile/tests/bench_0virtmem.py::bench_file_read_hole 0.24 (0.24 0.24 0.24) bigfile/tests/bench_0virtmem.py::bench_file_readbig_hole 0.30 (0.30 0.30 0.30) bigfile/tests/bench_0virtmem.py::bench_bigf_read_hole 0.43 (0.43 0.43 0.43) bigfile/tests/bench_0virtmem.py::bench_file_mmapwrite0 0.12 (0.13 0.12 0.13) bigfile/tests/bench_0virtmem.py::bench_file_write55 0.08 (0.08 0.08 0.08) bigfile/tests/bench_0virtmem.py::bench_bigf_writeff 0.45 (0.45 0.45 0.45) bigfile/tests/bench_0virtmem.py::bench_file_mmapread 0.21 (0.21 0.21 0.22) bigfile/tests/bench_0virtmem.py::bench_file_read 0.23 (0.23 0.24 0.24) bigfile/tests/bench_0virtmem.py::bench_file_readbig 0.30 (0.30 0.30 0.30) bigfile/tests/bench_0virtmem.py::bench_bigf_read 0.43 (0.44 0.43 0.44) bigfile/tests/bench_1filezodb.py::bench_bigz_readhole 0.42 (0.42 0.43 0.43) bigfile/tests/bench_1filezodb.py::bench_bigz_writeff 0.84 (0.84 1.25 1.25) bigfile/tests/bench_1filezodb.py::bench_bigz_read 0.60 (0.64 0.60 0.60) ========================== 14 passed in 21.78 seconds ========================== After patch: ============================= test session starts ============================== platform linux2 -- Python 2.7.14, pytest-3.3.0, py-1.5.2, pluggy-0.6.0 rootdir: /home/kirr/src/wendelin/wendelin.core, inifile: collected 14 items pymod: bigfile/tests/bench_0virtmem.py bench_file_mmapread_hole 0.21 (0.39 0.22 0.21) bench_file_read_hole 0.24 (0.24 0.24 0.24) bench_file_readbig_hole 0.30 (0.30 0.30 0.30) bench_bigf_read_hole 0.43 (0.43 0.43 0.43) bench_file_mmapwrite0 0.12 (0.13 0.12 0.13) bench_file_write55 0.08 (0.08 0.08 0.08) bench_bigf_writeff 0.45 (0.52 0.51 0.45) bench_file_mmapread 0.21 (0.21 0.21 0.21) bench_file_read 0.24 (0.24 0.24 0.24) bench_file_readbig 0.30 (0.30 0.30 0.30) bench_bigf_read 0.43 (0.43 0.43 0.43) pymod: bigfile/tests/bench_1filezodb.py bench_bigz_readhole 0.43 (0.43 0.43 0.43) bench_bigz_writeff 0.83 (0.83 1.20 1.21) bench_bigz_read 0.60 (0.65 0.60 0.60) ========================== 14 passed in 21.80 seconds ========================== The `key: value` header is compatible with Go benchmark format[1] and further we'll be trying to teach py.bench to output results in that format so that Go benchmarking tools like benchstat and perf.golang.org could be used for free. [1] https://github.com/golang/proposal/blob/master/design/14313-benchmark-format.md
-
Kirill Smelkov authored
Upstream pytest changed TerminalReporter._locationline() signature from def _locationline(self, collect_fspath, fspath, lineno, domain): to def _locationline(self, nodeid, fspath, lineno, domain): https://github.com/pytest-dev/pytest/commit/d73e6899 . This way without adjusting py.bench was reporting just filenames instead of benchmark names, e.g. this way: (z-dev) kirr@deco:~/src/wendelin/wendelin.core$ ./t/py.bench bigfile/tests/bench_0virtmem.py =============================================================== test session starts =============================================================== platform linux2 -- Python 2.7.14, pytest-3.3.0, py-1.5.2, pluggy-0.6.0 rootdir: /home/kirr/src/wendelin/wendelin.core, inifile: collected 11 items bigfile/tests/bench_0virtmem.py 0.21 (0.38 0.22 0.21) bigfile/tests/bench_0virtmem.py 0.23 (0.23 0.24 0.23) bigfile/tests/bench_0virtmem.py 0.30 (0.30 0.30 0.30) bigfile/tests/bench_0virtmem.py 0.43 (0.43 0.43 0.43) bigfile/tests/bench_0virtmem.py 0.12 (0.12 0.12 0.12) bigfile/tests/bench_0virtmem.py 0.08 (0.08 0.08 0.08) bigfile/tests/bench_0virtmem.py 0.44 (0.44 0.44 0.44) bigfile/tests/bench_0virtmem.py 0.20 (0.20 0.20 0.21) bigfile/tests/bench_0virtmem.py 0.24 (0.24 0.24 0.24) bigfile/tests/bench_0virtmem.py 0.30 (0.30 0.30 0.30) bigfile/tests/bench_0virtmem.py 0.43 (0.43 0.43 0.43) =========================================================== 11 passed in 12.39 seconds ============================================================ Fix it.
-
- 02 Dec, 2017 1 commit
-
-
Kirill Smelkov authored
In pytest3 pytest_runtest_call hook is always run as multicall and there is no way to control to disable it and force e.g. 'firstresult' behaviour. This way call.result in pytest_runtest_makereport is always a list of returned results, not the first result itself. Adjust the code in pytest_runtest_makereport to emulate 'firstresult' behaviour manually. Without the patch with recent pytest py.bench was crashing like this: ---- 8< ---- (z-dev) kirr@link:~/src/wendelin/wendelin.core$ make bench python setup.py ll_build_ext --inplace running ll_build_ext copying build/lib.linux-x86_64-2.7/wendelin/bigfile/_bigfile.so -> bigfile python t/py.bench --ignore=3rdparty --ignore=build --ignore=t ============================================================= test session starts ============================================================== platform linux2 -- Python 2.7.14, pytest-3.3.0, py-1.5.2, pluggy-0.6.0 rootdir: /home/kirr/src/wendelin/wendelin.core, inifile: collected 14 items bigfile/tests/bench_0virtmem.py INTERNALERROR> Traceback (most recent call last): INTERNALERROR> File "/home/kirr/src/wendelin/venv/z-dev/local/lib/python2.7/site-packages/_pytest/main.py", line 103, in wrap_session INTERNALERROR> session.exitstatus = doit(config, session) or 0 INTERNALERROR> File "/home/kirr/src/wendelin/venv/z-dev/local/lib/python2.7/site-packages/_pytest/main.py", line 141, in _main INTERNALERROR> config.hook.pytest_runtestloop(session=session) INTERNALERROR> File "/home/kirr/src/wendelin/venv/z-dev/local/lib/python2.7/site-packages/pluggy/__init__.py", line 617, in __call__ INTERNALERROR> return self._hookexec(self, self._nonwrappers + self._wrappers, kwargs) INTERNALERROR> File "/home/kirr/src/wendelin/venv/z-dev/local/lib/python2.7/site-packages/pluggy/__init__.py", line 222, in _hookexec INTERNALERROR> return self._inner_hookexec(hook, methods, kwargs) INTERNALERROR> File "/home/kirr/src/wendelin/venv/z-dev/local/lib/python2.7/site-packages/pluggy/__init__.py", line 216, in <lambda> INTERNALERROR> firstresult=hook.spec_opts.get('firstresult'), INTERNALERROR> File "/home/kirr/src/wendelin/venv/z-dev/local/lib/python2.7/site-packages/pluggy/callers.py", line 201, in _multicall INTERNALERROR> return outcome.get_result() INTERNALERROR> File "/home/kirr/src/wendelin/venv/z-dev/local/lib/python2.7/site-packages/pluggy/callers.py", line 77, in get_result INTERNALERROR> _reraise(*ex) # noqa INTERNALERROR> File "/home/kirr/src/wendelin/venv/z-dev/local/lib/python2.7/site-packages/pluggy/callers.py", line 180, in _multicall INTERNALERROR> res = hook_impl.function(*args) INTERNALERROR> File "/home/kirr/src/wendelin/venv/z-dev/local/lib/python2.7/site-packages/_pytest/main.py", line 164, in pytest_runtestloop INTERNALERROR> item.config.hook.pytest_runtest_protocol(item=item, nextitem=nextitem) INTERNALERROR> File "/home/kirr/src/wendelin/venv/z-dev/local/lib/python2.7/site-packages/pluggy/__init__.py", line 617, in __call__ INTERNALERROR> return self._hookexec(self, self._nonwrappers + self._wrappers, kwargs) INTERNALERROR> File "/home/kirr/src/wendelin/venv/z-dev/local/lib/python2.7/site-packages/pluggy/__init__.py", line 222, in _hookexec INTERNALERROR> return self._inner_hookexec(hook, methods, kwargs) INTERNALERROR> File "/home/kirr/src/wendelin/venv/z-dev/local/lib/python2.7/site-packages/pluggy/__init__.py", line 216, in <lambda> INTERNALERROR> firstresult=hook.spec_opts.get('firstresult'), INTERNALERROR> File "/home/kirr/src/wendelin/venv/z-dev/local/lib/python2.7/site-packages/pluggy/callers.py", line 201, in _multicall INTERNALERROR> return outcome.get_result() INTERNALERROR> File "/home/kirr/src/wendelin/venv/z-dev/local/lib/python2.7/site-packages/pluggy/callers.py", line 77, in get_result INTERNALERROR> _reraise(*ex) # noqa INTERNALERROR> File "/home/kirr/src/wendelin/venv/z-dev/local/lib/python2.7/site-packages/pluggy/callers.py", line 180, in _multicall INTERNALERROR> res = hook_impl.function(*args) INTERNALERROR> File "/home/kirr/src/wendelin/venv/z-dev/local/lib/python2.7/site-packages/_pytest/runner.py", line 63, in pytest_runtest_protocol INTERNALERROR> runtestprotocol(item, nextitem=nextitem) INTERNALERROR> File "/home/kirr/src/wendelin/venv/z-dev/local/lib/python2.7/site-packages/_pytest/runner.py", line 77, in runtestprotocol INTERNALERROR> reports.append(call_and_report(item, "call", log)) INTERNALERROR> File "/home/kirr/src/wendelin/venv/z-dev/local/lib/python2.7/site-packages/_pytest/runner.py", line 161, in call_and_report INTERNALERROR> hook.pytest_runtest_logreport(report=report) INTERNALERROR> File "/home/kirr/src/wendelin/venv/z-dev/local/lib/python2.7/site-packages/pluggy/__init__.py", line 617, in __call__ INTERNALERROR> return self._hookexec(self, self._nonwrappers + self._wrappers, kwargs) INTERNALERROR> File "/home/kirr/src/wendelin/venv/z-dev/local/lib/python2.7/site-packages/pluggy/__init__.py", line 222, in _hookexec INTERNALERROR> return self._inner_hookexec(hook, methods, kwargs) INTERNALERROR> File "/home/kirr/src/wendelin/venv/z-dev/local/lib/python2.7/site-packages/pluggy/__init__.py", line 216, in <lambda> INTERNALERROR> firstresult=hook.spec_opts.get('firstresult'), INTERNALERROR> File "/home/kirr/src/wendelin/venv/z-dev/local/lib/python2.7/site-packages/pluggy/callers.py", line 201, in _multicall INTERNALERROR> return outcome.get_result() INTERNALERROR> File "/home/kirr/src/wendelin/venv/z-dev/local/lib/python2.7/site-packages/pluggy/callers.py", line 77, in get_result INTERNALERROR> _reraise(*ex) # noqa INTERNALERROR> File "/home/kirr/src/wendelin/venv/z-dev/local/lib/python2.7/site-packages/pluggy/callers.py", line 180, in _multicall INTERNALERROR> res = hook_impl.function(*args) INTERNALERROR> File "t/py.bench", line 165, in pytest_runtest_logreport INTERNALERROR> self._tw.write('%.2f' % min(report.bench_times)) INTERNALERROR> TypeError: float argument required, not list
-
- 01 Dec, 2017 2 commits
-
-
Kirill Smelkov authored
If py.test machinery access any of the keys we change before we tweak them - their values will be put to config._inicache and our tweaking won't essentially have the effect. It used to be working without explicit cache invalidation with older pytests, but as of e.g. py.test 3.2.1 it does not work without explicit cache clearing because e.g. 'python_files' is somehow accessed before and is set to std 'test_*.py' + friends in the cache and this way py.bench then does not collect benchmarks from bench_*.py files. Fix it by making sure inicache is invalidated after our inicfg tweak.
-
Kirill Smelkov authored
-
- 24 Oct, 2017 1 commit
-
-
Kirill Smelkov authored
Relicense to GPLv3+ with wide exception for all Free Software / Open Source projects + Business options. Nexedi stack is licensed under Free Software licenses with various exceptions that cover three business cases: - Free Software - Proprietary Software - Rebranding As long as one intends to develop Free Software based on Nexedi stack, no license cost is involved. Developing proprietary software based on Nexedi stack may require a proprietary exception license. Rebranding Nexedi stack is prohibited unless rebranding license is acquired. Through this licensing approach, Nexedi expects to encourage Free Software development without restrictions and at the same time create a framework for proprietary software to contribute to the long term sustainability of the Nexedi stack. Please see https://www.nexedi.com/licensing for details, rationale and options.
-
- 15 Dec, 2015 1 commit
-
-
Kirill Smelkov authored
No one was freeing RAMH structure itself, and thus ASAN reports e.g.: ==15935==ERROR: LeakSanitizer: detected memory leaks Direct leak of 32 byte(s) in 1 object(s) allocated from: #0 0x7f29c89f1001 in __interceptor_calloc (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x94001) #1 0x401da1 in zalloc include/wendelin/utils.h:65 #2 0x408128 in shmfs_ramh_open bigfile/tests/../ram_shmfs.c:202 #3 0x407611 in ramh_open bigfile/tests/../ram.c:81 #4 0x402560 in fileh_open bigfile/tests/../virtmem.c:131 #5 0x427ca1 in test_pagefault_savestate bigfile/tests/test_virtmem.c:1022 #6 0x4281ba in main bigfile/tests/test_virtmem.c:1061 #7 0x7f29c83b8b44 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b44) NOTE similar leak remains open in ram_close(), but it is a bit involved to fix and the effort will be removed anyway after we switch to kernel virtual memory manager. Besides ramh are opened and closed all the time and ram only once.
-