diff --git a/tests/pkg_hacl/Makefile b/tests/pkg_hacl/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..ba33d84bc9645c1131206c6461704c5e13b30af8
--- /dev/null
+++ b/tests/pkg_hacl/Makefile
@@ -0,0 +1,16 @@
+include ../Makefile.tests_common
+
+BOARD_BLACKLIST := arduino-duemilanove arduino-mega2560 arduino-uno \
+                   jiminy-mega256rfr2 mega-xplained waspmote-pro \
+                   chronos msb-430 msb-430h telosb wsn430-v1_3b wsn430-v1_4 z1
+
+BOARD_INSUFFICIENT_MEMORY := nucleo-f031k6 nucleo-f042k6
+
+TEST_ON_CI_WHITELIST += all
+
+CFLAGS += -DTHREAD_STACKSIZE_MAIN=\(5*THREAD_STACKSIZE_DEFAULT\)
+USEPKG += hacl
+USEMODULE += random
+USEMODULE += embunit
+
+include $(RIOTBASE)/Makefile.include
diff --git a/tests/unittests/tests-hacl/tests-hacl.c b/tests/pkg_hacl/main.c
similarity index 93%
rename from tests/unittests/tests-hacl/tests-hacl.c
rename to tests/pkg_hacl/main.c
index 37c48a529c13e5e72c27acaf6e62214b1570a692..801af300e3148f3f0a7003d448cc4e81c1540123 100644
--- a/tests/unittests/tests-hacl/tests-hacl.c
+++ b/tests/pkg_hacl/main.c
@@ -22,8 +22,8 @@
 
 #include <string.h>
 #include <haclnacl.h>
+#include "random.h"
 #include "embUnit.h"
-#include "tests-hacl.h"
 
 static const char message[] = "0123456789abcdef";
 static char r[sizeof(message)];
@@ -74,7 +74,7 @@ static void test_hacl_01(void)
     TEST_ASSERT_EQUAL_STRING((const char*)message, (const char*)r);
 }
 
-Test *tests_hacl_all(void)
+Test *tests_hacl(void)
 {
     EMB_UNIT_TESTFIXTURES(fixtures) {
         new_TestFixture(test_hacl_01)
@@ -84,7 +84,10 @@ Test *tests_hacl_all(void)
     return (Test*)&hacl_tests;
 }
 
-void tests_hacl(void)
+int main(void)
 {
-    TESTS_RUN(tests_hacl_all());
+    TESTS_START();
+    TESTS_RUN(tests_hacl());
+    TESTS_END();
+    return 0;
 }
diff --git a/tests/pkg_hacl/tests/01-run.py b/tests/pkg_hacl/tests/01-run.py
new file mode 100755
index 0000000000000000000000000000000000000000..4e70aa35dd77e6adf8c244cbac67a7acefdaa282
--- /dev/null
+++ b/tests/pkg_hacl/tests/01-run.py
@@ -0,0 +1,18 @@
+#!/usr/bin/env python3
+
+# Copyright (C) 2017 Freie Universität Berlin
+#
+# 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
+
+
+def testfunc(child):
+    child.expect('OK \(\d+ tests\)')
+
+
+if __name__ == "__main__":
+    sys.exit(run(testfunc))
diff --git a/tests/unittests/Makefile b/tests/unittests/Makefile
index 3fb1c655f343715a88fcbbe1c2ce1bcb5daf3c3d..81aa2d9eeb34074e1acf04f44292a0961c436aee 100644
--- a/tests/unittests/Makefile
+++ b/tests/unittests/Makefile
@@ -235,7 +235,6 @@ ifneq (, $(filter $(AVR_BOARDS), $(BOARD)))
   LARGE_STACK_TESTS += tests-qDSA
 endif
 
-LARGE_STACK_TESTS += tests-hacl
 LARGE_STACK_TESTS += tests-tweetnacl
 ifneq (,$(filter $(LARGE_STACK_TESTS), $(UNIT_TESTS)))
   CFLAGS += -DTHREAD_STACKSIZE_MAIN=\(4*THREAD_STACKSIZE_DEFAULT+THREAD_EXTRA_STACKSIZE_PRINTF\)
diff --git a/tests/unittests/tests-hacl/Makefile b/tests/unittests/tests-hacl/Makefile
deleted file mode 100644
index 48422e909a47d7cd428d10fa73825060ccc8d8c2..0000000000000000000000000000000000000000
--- a/tests/unittests/tests-hacl/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-include $(RIOTBASE)/Makefile.base
diff --git a/tests/unittests/tests-hacl/Makefile.include b/tests/unittests/tests-hacl/Makefile.include
deleted file mode 100644
index f2612ffbf49bd57581de74508359afa1621f0deb..0000000000000000000000000000000000000000
--- a/tests/unittests/tests-hacl/Makefile.include
+++ /dev/null
@@ -1,2 +0,0 @@
-USEMODULE += random
-USEPKG += hacl
diff --git a/tests/unittests/tests-hacl/tests-hacl.h b/tests/unittests/tests-hacl/tests-hacl.h
deleted file mode 100644
index 4020e476b306aed425f05063962b876f136fe04a..0000000000000000000000000000000000000000
--- a/tests/unittests/tests-hacl/tests-hacl.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (C) 2018 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.
- */
-
-/**
- * @addtogroup  unittests
- * @{
- *
- * @file
- * @brief       Unittests for the ``hacl`` package
- *
- * @author      Benjamin Beurdouche <benjamin.beurdouche@inria.fr>
- */
-#ifndef TESTS_HACL_H
-#define TESTS_HACL_H
-
-#include "embUnit/embUnit.h"
-#include "random.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
-*  @brief   The entry point of this test suite.
-*/
-void tests_hacl(void);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* TESTS_HACL_H */
-/** @} */