diff --git a/tests/pkg_qr-code-generator/Makefile b/tests/pkg_qr-code-generator/Makefile new file mode 100644 index 0000000000..8c7df1d5f3 --- /dev/null +++ b/tests/pkg_qr-code-generator/Makefile @@ -0,0 +1,9 @@ +include ../Makefile.tests_common + +USEPKG += qr-code-generator + +MESSAGE_TO_ENCODE ?= "https://riot-os.org" + +CFLAGS += -DMESSAGE_TO_ENCODE=\"$(MESSAGE_TO_ENCODE)\" + +include $(RIOTBASE)/Makefile.include diff --git a/tests/pkg_qr-code-generator/app.config.test b/tests/pkg_qr-code-generator/app.config.test new file mode 100644 index 0000000000..105f736641 --- /dev/null +++ b/tests/pkg_qr-code-generator/app.config.test @@ -0,0 +1 @@ +CONFIG_PACKAGE_QR-CODE-GENERATOR=y diff --git a/tests/pkg_qr-code-generator/main.c b/tests/pkg_qr-code-generator/main.c new file mode 100644 index 0000000000..d9b91be22e --- /dev/null +++ b/tests/pkg_qr-code-generator/main.c @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2021 Inria + * + * This file is subject to the terms and conditions of the GNU Lesser + * General Public License v2.1. See the file LICENSE in the top level + * directory for more details. + */ + +/** + * @ingroup tests + * @{ + * + * @file + * @brief Test application for the qr-code-generator package + * + * @author Alexandre Abadie + * + * @} + */ + +#include + +#include +#include +#include "qrcodegen.h" + +#ifndef MESSAGE_TO_ENCODE +#define MESSAGE_TO_ENCODE "unknown" +#endif + +static uint8_t qr0[qrcodegen_BUFFER_LEN_FOR_VERSION(2)]; +static uint8_t buffer[qrcodegen_BUFFER_LEN_FOR_VERSION(2)]; + +int main(void) +{ + if (!qrcodegen_encodeText(MESSAGE_TO_ENCODE, + buffer, qr0, qrcodegen_Ecc_MEDIUM, + qrcodegen_VERSION_MIN, qrcodegen_VERSION_MAX, + qrcodegen_Mask_AUTO, true)) { + puts("Encoding error"); + return -1; + } + + int size = qrcodegen_getSize(qr0); + for (int y = 0; y < size; y++) { + for (int x = 0; x < size; x++) { + printf("%s", qrcodegen_getModule(qr0, x, y) ? "██" : " "); + } + puts(""); + } + + return 0; +} diff --git a/tests/pkg_qr-code-generator/tests/01-run.py b/tests/pkg_qr-code-generator/tests/01-run.py new file mode 100755 index 0000000000..d3961f6a21 --- /dev/null +++ b/tests/pkg_qr-code-generator/tests/01-run.py @@ -0,0 +1,49 @@ +#!/usr/bin/env python3 + +# Copyright (C) 2021 Inria +# +# This file is subject to the terms and conditions of the GNU Lesser +# General Public License v2.1. See the file LICENSE in the top level +# directory for more details. + +import sys +from testrunner import run + + +QR_CODE = ( + "██████████████ ██████████ ██ ██████████████\n" + "██ ██ ██ ██ ████ ██ ██\n" + "██ ██████ ██ ████ ██ ████ ██ ██████ ██\n" + "██ ██████ ██ ████ ██ ██ ██████ ██\n" + "██ ██████ ██ ██████████ ████ ██ ██████ ██\n" + "██ ██ ██ ██ ████ ██ ██\n" + "██████████████ ██ ██ ██ ██ ██ ██████████████\n" + " ██ ██████ ██ \n" + " ████ ██ ████ ██████ ██████ ██ ██████████\n" + " ████ ██ ████████ ██ ████ ██\n" + " ██ ████████ ██ ██ ████ ██████\n" + "██████ ██ ██ ██ ██ ██ ██ \n" + " ████████ ██ ██ ██████ ██ ████\n" + " ██ ████ ██ ██ ██████ ██ ██\n" + "██ ██ ██ ████████ ██ ██ ██████\n" + " ██ ████ ████ ██ ██ ██ ██ ██ \n" + "██ ██ ██████ ████████████████ \n" + " ██████ ██ ████ ████ ████\n" + "██████████████ ████████ ████████ ██ ████ ████\n" + "██ ██ ██ ██████ ██ ████ ██\n" + "██ ██████ ██ ██████████ ████████████ ██\n" + "██ ██████ ██ ████ ██ ██ ████████ \n" + "██ ██████ ██ ██ ████ ██ ██ ██ ██\n" + "██ ██ ████ ██████████ ████ ██ \n" + "██████████████ ██ ██ ████ ████\n" +) + + +def testfunc(child): + for line in QR_CODE.split("\n"): + child.expect_exact(line) + print("\nSUCCESS") + + +if __name__ == "__main__": + sys.exit(run(testfunc))