Merge pull request #11319 from miri64/pkg/new/ubasic
pkg: Initial introduction of ubasic package
This commit is contained in:
commit
9832299e62
21
pkg/ubasic/Makefile
Normal file
21
pkg/ubasic/Makefile
Normal file
@ -0,0 +1,21 @@
|
||||
PKG_NAME=ubasic
|
||||
PKG_URL=https://github.com/adamdunkels/ubasic
|
||||
PKG_VERSION=cc07193c231e21ecb418335aba5b199a08d4685c
|
||||
PKG_LICENSE=BSD-3-Clause
|
||||
|
||||
UBASIC_MODULES = ubasic_tests
|
||||
UBASIC_USEMODULE = $(filter $(UBASIC_MODULES),$(USEMODULE))
|
||||
|
||||
.PHONY: all ubasic ubasic%
|
||||
|
||||
all: git-download ubasic
|
||||
|
||||
make_module = "$(MAKE)" -f $(RIOTPKG)/ubasic/$(1).mk -C $(2)
|
||||
|
||||
ubasic: $(UBASIC_USEMODULE)
|
||||
$(call make_module,$@,$(PKG_BUILDDIR))
|
||||
|
||||
ubasic%:
|
||||
$(call make_module,$@,$(PKG_BUILDDIR))
|
||||
|
||||
include $(RIOTBASE)/pkg/pkg.mk
|
||||
1
pkg/ubasic/Makefile.include
Normal file
1
pkg/ubasic/Makefile.include
Normal file
@ -0,0 +1 @@
|
||||
INCLUDES += -I$(PKGDIRBASE)/ubasic
|
||||
6
pkg/ubasic/doc.txt
Normal file
6
pkg/ubasic/doc.txt
Normal file
@ -0,0 +1,6 @@
|
||||
/**
|
||||
* @defgroup pkg_ubasic uBASIC interpreter
|
||||
* @ingroup pkg
|
||||
* @brief A really tiny BASIC interpreter
|
||||
* @see http://dunkels.com/adam/ubasic/
|
||||
*/
|
||||
10
pkg/ubasic/ubasic.mk
Normal file
10
pkg/ubasic/ubasic.mk
Normal file
@ -0,0 +1,10 @@
|
||||
MODULE = ubasic
|
||||
|
||||
# some toolchains complain about the usage of isdigit with a pointer in the
|
||||
# tokenizer
|
||||
CFLAGS += -Wno-char-subscripts
|
||||
|
||||
SRC := tokenizer.c ubasic.c
|
||||
NO_AUTO_SRC := 1
|
||||
|
||||
include $(RIOTBASE)/Makefile.base
|
||||
13
pkg/ubasic/ubasic_tests.mk
Normal file
13
pkg/ubasic/ubasic_tests.mk
Normal file
@ -0,0 +1,13 @@
|
||||
MODULE = ubasic_tests
|
||||
|
||||
# tests.c has constants that may overflow on <32 bit platforms
|
||||
CFLAGS += -Wno-overflow
|
||||
# ubasic_init_peek_poke used in those tests is not exposed
|
||||
CFLAGS += -Wno-implicit-function-declaration
|
||||
# LLVM doesn't like ubasic_init_peek_poke due to strict prototyping either
|
||||
CFLAGS += -Wno-strict-prototypes
|
||||
|
||||
SRC := tests.c
|
||||
NO_AUTO_SRC := 1
|
||||
|
||||
include $(RIOTBASE)/Makefile.base
|
||||
36
tests/pkg_ubasic/Makefile
Normal file
36
tests/pkg_ubasic/Makefile
Normal file
@ -0,0 +1,36 @@
|
||||
include ../Makefile.tests_common
|
||||
|
||||
BOARD_INSUFFICIENT_MEMORY := arduino-duemilanove
|
||||
|
||||
# msp430-libc does not provide `stdout` variable required by ubasic_tests
|
||||
# avr-libc does not provide `clock `required by ubasic_tests
|
||||
# newlib for esp8266 and MIPS does not provide _times_r
|
||||
BOARD_BLACKLIST := \
|
||||
arduino-duemilanove \
|
||||
arduino-mega2560 \
|
||||
arduino-nano \
|
||||
arduino-uno \
|
||||
chronos \
|
||||
esp8266-esp-12x \
|
||||
esp8266-olimex-mod \
|
||||
hifive1 \
|
||||
jiminy-mega256rfr2 \
|
||||
mega-xplained \
|
||||
mips-malta \
|
||||
msb-430 \
|
||||
msb-430h \
|
||||
pic32-clicker \
|
||||
pic32-wifire \
|
||||
telosb \
|
||||
waspmote-pro \
|
||||
wsn430-v1_3b \
|
||||
wsn430-v1_4 \
|
||||
z1 \
|
||||
#
|
||||
|
||||
TEST_ON_CI_WHITELIST += all
|
||||
|
||||
USEPKG += ubasic
|
||||
USEMODULE += ubasic_tests
|
||||
|
||||
include $(RIOTBASE)/Makefile.include
|
||||
19
tests/pkg_ubasic/tests/01-run.py
Executable file
19
tests/pkg_ubasic/tests/01-run.py
Executable file
@ -0,0 +1,19 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
# Copyright (C) 2019 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):
|
||||
for i in range(1, 6):
|
||||
child.expect(r"Running test #{}... done. Run time: [0-9.]* s".format(i))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
sys.exit(run(testfunc, timeout=120))
|
||||
Loading…
x
Reference in New Issue
Block a user