04120a3965
After the 0.2.0 version, there are even more possible cases to consider. I found it too annoying to do all the testing manually. Add some tests to make it easy to test everything automatically. The test python3Packages.invisible-watermark.tests.withOnnx-rivaGan would fail in the nix sandbox on aarch64-linux: ``` Error in cpuinfo: failed to parse the list of possible processors in /sys/devices/system/cpu/possible Error in cpuinfo: failed to parse the list of present processors in /sys/devices/system/cpu/present Error in cpuinfo: failed to parse both lists of possible and present processors terminate called after throwing an instance of 'onnxruntime::OnnxRuntimeException' what(): /build/source/include/onnxruntime/core/common/logging/logging.h:294 static const onnxruntime::logging::Logger& onnxruntime::logging::LoggingManager::DefaultLogger() Attempt to use DefaultLogger but none has been registered. /build/.attr-0l2nkwhif96f51f4amnlf414lhl4rv9vh8iffyp431v6s28gsr90: line 9: 5 Aborted (core dumped) invisible-watermark --verbose --action encode --type bytes --method 'rivaGan' --watermark 'asdf' --output output.png '/nix/store/srl698a32n9d2pmyf5zqfk65gjzq3mhp-source/test_vectors/original.jpg' Exit code of invisible-watermark was 134 while 0 was expected. ``` so I have disabled that test. I believe https://github.com/microsoft/onnxruntime/issues/10038 describes the same issue.
43 lines
1.1 KiB
Nix
43 lines
1.1 KiB
Nix
{ image
|
|
, invisible-watermark
|
|
, opencv4
|
|
, python3
|
|
, runCommand
|
|
, stdenvNoCC
|
|
}:
|
|
|
|
# This test checks if the python code shown in the README works correctly
|
|
|
|
let
|
|
message = "fnörd1";
|
|
method = "dwtDct";
|
|
|
|
pythonWithPackages = python3.withPackages (pp: with pp; [ invisible-watermark opencv4 ]);
|
|
pythonInterpreter = pythonWithPackages.interpreter;
|
|
|
|
encode = stdenvNoCC.mkDerivation {
|
|
name = "encode";
|
|
realBuilder = pythonInterpreter;
|
|
args = [ ./encode.py ];
|
|
inherit image message method;
|
|
};
|
|
|
|
decode = stdenvNoCC.mkDerivation {
|
|
name = "decode";
|
|
realBuilder = pythonInterpreter;
|
|
args = [ ./decode.py ];
|
|
inherit method;
|
|
image = "${encode}/test_wm.png";
|
|
num_bits = (builtins.stringLength message) * 8;
|
|
};
|
|
in
|
|
runCommand "invisible-watermark-test-python" { } ''
|
|
decoded_message="$(cat '${decode}')"
|
|
if [ '${message}' != "$decoded_message" ]; then
|
|
echo "invisible-watermark did not decode the watermark correctly."
|
|
echo "The original message was ${message} but the decoded message was $decoded_message."
|
|
exit 1
|
|
fi
|
|
touch "$out"
|
|
''
|