diff --git a/tests/periph_cpuid/Makefile b/tests/periph_cpuid/Makefile index dadc77f857..268f07cd86 100644 --- a/tests/periph_cpuid/Makefile +++ b/tests/periph_cpuid/Makefile @@ -3,3 +3,24 @@ include ../Makefile.tests_common FEATURES_REQUIRED = periph_cpuid include $(RIOTBASE)/Makefile.include + +# Determine the CPUID_LEN based on the current architecture or CPU used in the +# build system. +ifneq (,$(filter arch_esp32,$(FEATURES_USED))) + CPUID_LEN = 7 +endif +ifneq (,$(filter cc2538 efm32 ezr32wg nrf5%,$(CPU))) + CPUID_LEN = 8 +endif +ifneq (,$(filter cc26x0 lpc1768 sam%,$(CPU))) + CPUID_LEN = 16 +endif +ifneq (,$(filter fe310 kinetis stm32%,$(CPU))) + CPUID_LEN = 12 +endif + +# Use 4 as default as it is the minimum for all supported CPUs. +CPUID_LEN ?= 4 + +# Export CPUID_LEN env variable to the Python script. +export CPUID_LEN diff --git a/tests/periph_cpuid/tests/01-run.py b/tests/periph_cpuid/tests/01-run.py new file mode 100755 index 0000000000..3deb058bf8 --- /dev/null +++ b/tests/periph_cpuid/tests/01-run.py @@ -0,0 +1,25 @@ +#!/usr/bin/env python3 + +# Copyright (C) 2019 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 os +import sys +from testrunner import run + + +CPUID_LEN = int(os.getenv('CPUID_LEN') or 4) + + +def testfunc(child): + child.expect_exact('Test for the CPUID driver') + child.expect_exact('This test is reading out the CPUID of the platforms CPU') + expected = 'CPUID:' + CPUID_LEN * r' 0x[0-9a-fA-F]{2}' + child.expect(expected) + + +if __name__ == "__main__": + sys.exit(run(testfunc))