First issue (blocker)

I have succeeded in getting the unit testing scripts for python code to run as part of the build on my machine, however when uploaded to GitLab the pipelines fail with an import error in the test scripts. The test modules cannot import the library modules they are meant to test.

The cause of this issue is that the python libraries are stored in pylib/ but installed (and referenced in the code) as ntp/. Previously this caused import problems that were solved when someone added code to create a symlink from ntp/ to pylib/ at the end of the build process. When run by the pipeline this symlink is not in place, resulting in the error. When I delete the build/ folder from my repo and run the build it errors out with a different import error (probably gets farther because I have an installed copy it can piggyback off of), but then a subsequent clean configure build succeeds.

Adding the pytest_paths argument to the build script does not - and cannot - work because of the "pylib" vs "ntp" difference.

I attempted to snip the code from afterparty() that creates the symlinks and stick it in build() before the tests are run. It errored in ways I do not understand.

Though I understand the build system far better than I did a week ago I am still mostly poking it while trying to not to blow it up. Which leads nicely into the next problem...

Second issue (non-blocker, but ugly)

In order to run unit tests on python code the "pytest" waf module is required. Attempting to load it normally failed, leading me to believe that it was not included in the non-human-readable waf code. After manually downloading the relevant file from the waf repo I tried to place it in the directory where it should go in theory, resulting in failed imports for everything else that has that import path (but is really imported from the archive). I also tried to place in in wafhelpers, which failed. Currently in the MR for the build changes pytest.py sits in the top level ntpsec/ directory where it works, but this kind of sloppiness is not how the build should be arranged.

I do not know how to "recompile" waf to include different modules, I don't know the beginnings of what I don't know, and I'm not sure that I would do it if I did know. Someone with Official Build Wrangling status needs to take a look at this.

--
/"In the end; what separates a Man, from a Slave? Money? Power? No. A Man Chooses, a Slave Obeys."/ -- Andrew Ryan

/"Utopia cannot precede the Utopian. It will exist the moment we are fit to occupy it."/ -- Sophia Lamb

_______________________________________________
devel mailing list
devel@ntpsec.org
http://lists.ntpsec.org/mailman/listinfo/devel

Reply via email to