summaryrefslogtreecommitdiff
path: root/src/test
diff options
context:
space:
mode:
Diffstat (limited to 'src/test')
-rw-r--r--src/test/Makefile18
-rw-r--r--src/test/ao_flight_test.c10
-rw-r--r--src/test/ao_lisp_os.h59
-rw-r--r--src/test/ao_lisp_test.c134
-rw-r--r--src/test/hanoi.lisp155
5 files changed, 14 insertions, 362 deletions
diff --git a/src/test/Makefile b/src/test/Makefile
index 08808430..7bd13db9 100644
--- a/src/test/Makefile
+++ b/src/test/Makefile
@@ -1,10 +1,13 @@
-vpath % ..:../kernel:../drivers:../util:../micropeak:../aes:../product:../lisp
+vpath %.o .
+vpath %.c ..:../kernel:../drivers:../util:../micropeak:../aes:../product
+vpath %.h ..:../kernel:../drivers:../util:../micropeak:../aes:../product
+vpath make-kalman ..:../kernel:../drivers:../util:../micropeak:../aes:../product
PROGS=ao_flight_test ao_flight_test_baro ao_flight_test_accel ao_flight_test_noisy_accel ao_flight_test_mm \
ao_flight_test_metrum ao_flight_test_mini \
ao_gps_test ao_gps_test_skytraq ao_gps_test_ublox ao_convert_test ao_convert_pa_test ao_fec_test \
ao_aprs_test ao_micropeak_test ao_fat_test ao_aes_test ao_int64_test \
- ao_ms5607_convert_test ao_quaternion_test ao_lisp_test
+ ao_ms5607_convert_test ao_quaternion_test
INCS=ao_kalman.h ao_ms5607.h ao_log.h ao_data.h altitude-pa.h altitude.h ao_quaternion.h ao_eeprom_read.h
TEST_SRC=ao_flight_test.c
@@ -17,7 +20,7 @@ CFLAGS=-I.. -I. -I../kernel -I../drivers -I../micropeak -I../product -I../lisp -
all: $(PROGS) ao_aprs_data.wav
-clean:
+clean::
rm -f $(PROGS) ao_aprs_data.wav run-out.baro run-out.full
install:
@@ -94,12 +97,3 @@ ao_ms5607_convert_test: ao_ms5607_convert_test.c ao_ms5607_convert_8051.c ao_int
ao_quaternion_test: ao_quaternion_test.c ao_quaternion.h
cc $(CFLAGS) -o $@ ao_quaternion_test.c -lm
-AO_LISP_OBJS = ao_lisp_test.o ao_lisp_mem.o ao_lisp_cons.o ao_lisp_string.o \
- ao_lisp_atom.o ao_lisp_int.o ao_lisp_eval.o ao_lisp_poly.o \
- ao_lisp_builtin.o ao_lisp_read.o ao_lisp_rep.o ao_lisp_frame.o \
- ao_lisp_lambda.o ao_lisp_error.o ao_lisp_save.o ao_lisp_stack.o
-
-ao_lisp_test: $(AO_LISP_OBJS)
- cc $(CFLAGS) -o $@ $(AO_LISP_OBJS)
-
-$(AO_LISP_OBJS): ao_lisp.h ao_lisp_const.h ao_lisp_os.h
diff --git a/src/test/ao_flight_test.c b/src/test/ao_flight_test.c
index 298848d6..2d862f82 100644
--- a/src/test/ao_flight_test.c
+++ b/src/test/ao_flight_test.c
@@ -25,6 +25,7 @@
#include <string.h>
#include <getopt.h>
#include <math.h>
+#define log ao_log_data
#define GRAVITY 9.80665
@@ -370,7 +371,7 @@ extern int16_t ao_accel_2g;
typedef int16_t accel_t;
uint16_t ao_serial_number;
-uint16_t ao_flight_number;
+int16_t ao_flight_number;
extern uint16_t ao_sample_tick;
@@ -998,7 +999,7 @@ main (int argc, char **argv)
#else
emulator_app="baro";
#endif
- while ((c = getopt_long(argc, argv, "sdi:", options, NULL)) != -1) {
+ while ((c = getopt_long(argc, argv, "sdpi:", options, NULL)) != -1) {
switch (c) {
case 's':
summary = 1;
@@ -1006,6 +1007,11 @@ main (int argc, char **argv)
case 'd':
ao_flight_debug = 1;
break;
+ case 'p':
+#if PYRO_DBG
+ pyro_dbg = 1;
+#endif
+ break;
case 'i':
info = optarg;
break;
diff --git a/src/test/ao_lisp_os.h b/src/test/ao_lisp_os.h
deleted file mode 100644
index 9ff2e1fe..00000000
--- a/src/test/ao_lisp_os.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Copyright © 2016 Keith Packard <keithp@keithp.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
- */
-
-#ifndef _AO_LISP_OS_H_
-#define _AO_LISP_OS_H_
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <time.h>
-
-#define AO_LISP_POOL_TOTAL 3072
-#define AO_LISP_SAVE 1
-#define DBG_MEM_STATS 1
-
-extern int ao_lisp_getc(void);
-
-static inline void
-ao_lisp_os_flush() {
- fflush(stdout);
-}
-
-static inline void
-ao_lisp_abort(void)
-{
- abort();
-}
-
-static inline void
-ao_lisp_os_led(int led)
-{
- printf("leds set to 0x%x\n", led);
-}
-
-static inline void
-ao_lisp_os_delay(int delay)
-{
- if (!delay)
- return;
- struct timespec ts = {
- .tv_sec = delay / 1000,
- .tv_nsec = (delay % 1000) * 1000000,
- };
- nanosleep(&ts, NULL);
-}
-#endif
diff --git a/src/test/ao_lisp_test.c b/src/test/ao_lisp_test.c
deleted file mode 100644
index 68e3a202..00000000
--- a/src/test/ao_lisp_test.c
+++ /dev/null
@@ -1,134 +0,0 @@
-/*
- * Copyright © 2016 Keith Packard <keithp@keithp.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- */
-
-#include "ao_lisp.h"
-#include <stdio.h>
-
-static FILE *ao_lisp_file;
-static int newline = 1;
-
-static char save_file[] = "lisp.image";
-
-int
-ao_lisp_os_save(void)
-{
- FILE *save = fopen(save_file, "w");
-
- if (!save) {
- perror(save_file);
- return 0;
- }
- fwrite(ao_lisp_pool, 1, AO_LISP_POOL_TOTAL, save);
- fclose(save);
- return 1;
-}
-
-int
-ao_lisp_os_restore_save(struct ao_lisp_os_save *save, int offset)
-{
- FILE *restore = fopen(save_file, "r");
- size_t ret;
-
- if (!restore) {
- perror(save_file);
- return 0;
- }
- fseek(restore, offset, SEEK_SET);
- ret = fread(save, sizeof (struct ao_lisp_os_save), 1, restore);
- fclose(restore);
- if (ret != 1)
- return 0;
- return 1;
-}
-
-int
-ao_lisp_os_restore(void)
-{
- FILE *restore = fopen(save_file, "r");
- size_t ret;
-
- if (!restore) {
- perror(save_file);
- return 0;
- }
- ret = fread(ao_lisp_pool, 1, AO_LISP_POOL_TOTAL, restore);
- fclose(restore);
- if (ret != AO_LISP_POOL_TOTAL)
- return 0;
- return 1;
-}
-
-int
-ao_lisp_getc(void)
-{
- int c;
-
- if (ao_lisp_file)
- return getc(ao_lisp_file);
-
- if (newline) {
- printf("> ");
- newline = 0;
- }
- c = getchar();
- if (c == '\n')
- newline = 1;
- return c;
-}
-
-int
-main (int argc, char **argv)
-{
- while (*++argv) {
- ao_lisp_file = fopen(*argv, "r");
- if (!ao_lisp_file) {
- perror(*argv);
- exit(1);
- }
- ao_lisp_read_eval_print();
- fclose(ao_lisp_file);
- ao_lisp_file = NULL;
- }
- ao_lisp_read_eval_print();
-
- printf ("collects: full: %d incremental %d\n",
- ao_lisp_collects[AO_LISP_COLLECT_FULL],
- ao_lisp_collects[AO_LISP_COLLECT_INCREMENTAL]);
-
- printf ("freed: full %d incremental %d\n",
- ao_lisp_freed[AO_LISP_COLLECT_FULL],
- ao_lisp_freed[AO_LISP_COLLECT_INCREMENTAL]);
-
- printf("loops: full %d incremental %d\n",
- ao_lisp_loops[AO_LISP_COLLECT_FULL],
- ao_lisp_loops[AO_LISP_COLLECT_INCREMENTAL]);
-
- printf("loops per collect: full %f incremental %f\n",
- (double) ao_lisp_loops[AO_LISP_COLLECT_FULL] /
- (double) ao_lisp_collects[AO_LISP_COLLECT_FULL],
- (double) ao_lisp_loops[AO_LISP_COLLECT_INCREMENTAL] /
- (double) ao_lisp_collects[AO_LISP_COLLECT_INCREMENTAL]);
-
- printf("freed per collect: full %f incremental %f\n",
- (double) ao_lisp_freed[AO_LISP_COLLECT_FULL] /
- (double) ao_lisp_collects[AO_LISP_COLLECT_FULL],
- (double) ao_lisp_freed[AO_LISP_COLLECT_INCREMENTAL] /
- (double) ao_lisp_collects[AO_LISP_COLLECT_INCREMENTAL]);
-
- printf("freed per loop: full %f incremental %f\n",
- (double) ao_lisp_freed[AO_LISP_COLLECT_FULL] /
- (double) ao_lisp_loops[AO_LISP_COLLECT_FULL],
- (double) ao_lisp_freed[AO_LISP_COLLECT_INCREMENTAL] /
- (double) ao_lisp_loops[AO_LISP_COLLECT_INCREMENTAL]);
-}
diff --git a/src/test/hanoi.lisp b/src/test/hanoi.lisp
deleted file mode 100644
index e2eb0fa0..00000000
--- a/src/test/hanoi.lisp
+++ /dev/null
@@ -1,155 +0,0 @@
-;
-; Towers of Hanoi
-;
-; Copyright © 2016 Keith Packard <keithp@keithp.com>
-;
-; This program is free software; you can redistribute it and/or modify
-; it under the terms of the GNU General Public License as published by
-; the Free Software Foundation, either version 2 of the License, or
-; (at your option) any later version.
-;
-; This program is distributed in the hope that it will be useful, but
-; WITHOUT ANY WARRANTY; without even the implied warranty of
-; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-; General Public License for more details.
-;
-
- ; ANSI control sequences
-
-(defun move-to (col row)
- (patom "\033[" row ";" col "H")
- )
-
-(defun clear ()
- (patom "\033[2J")
- )
-
-(defun display-string (x y str)
- (move-to x y)
- (patom str)
- )
-
- ; Here's the pieces to display
-
-(setq stack '(" * " " *** " " ***** " " ******* " " ********* " "***********"))
-
- ; Here's all of the stacks of pieces
- ; This is generated when the program is run
-
-(setq stacks nil)
-
- ; Display one stack, clearing any
- ; space above it
-
-(defun display-stack (x y clear stack)
- (cond ((= 0 clear)
- (cond (stack
- (display-string x y (car stack))
- (display-stack x (1+ y) 0 (cdr stack))
- )
- )
- )
- (t
- (display-string x y " ")
- (display-stack x (1+ y) (1- clear) stack)
- )
- )
- )
-
- ; Position of the top of the stack on the screen
- ; Shorter stacks start further down the screen
-
-(defun stack-pos (y stack)
- (- y (length stack))
- )
-
- ; Display all of the stacks, spaced 20 columns apart
-
-(defun display-stacks (x y stacks)
- (cond (stacks
- (display-stack x 0 (stack-pos y (car stacks)) (car stacks))
- (display-stacks (+ x 20) y (cdr stacks)))
- )
- )
-
- ; Display all of the stacks, then move the cursor
- ; out of the way and flush the output
-
-(defun display ()
- (display-stacks 0 top stacks)
- (move-to 1 21)
- (flush)
- )
-
- ; Reset stacks to the starting state, with
- ; all of the pieces in the first stack and the
- ; other two empty
-
-(defun reset-stacks ()
- (setq stacks (list stack nil nil))
- (setq top (+ (length stack) 3))
- (length stack)
- )
-
- ; more functions which could usefully
- ; be in the rom image
-
-(defun min (a b)
- (cond ((< a b) a)
- (b)
- )
- )
-
- ; Replace a stack in the list of stacks
- ; with a new value
-
-(defun replace (list pos member)
- (cond ((= pos 0) (cons member (cdr list)))
- ((cons (car list) (replace (cdr list) (1- pos) member)))
- )
- )
-
- ; Move a piece from the top of one stack
- ; to the top of another
-
-(setq move-delay 100)
-
-(defun move-piece (from to)
- (let ((from-stack (nth stacks from))
- (to-stack (nth stacks to))
- (piece (car from-stack)))
- (setq from-stack (cdr from-stack))
- (setq to-stack (cons piece to-stack))
- (setq stacks (replace stacks from from-stack))
- (setq stacks (replace stacks to to-stack))
- (display)
- (delay move-delay)
- )
- )
-
-; The implementation of the game
-
-(defun _hanoi (n from to use)
- (cond ((= 1 n)
- (move-piece from to)
- )
- (t
- (_hanoi (1- n) from use to)
- (_hanoi 1 from to use)
- (_hanoi (1- n) use to from)
- )
- )
- )
-
- ; A pretty interface which
- ; resets the state of the game,
- ; clears the screen and runs
- ; the program
-
-(defun hanoi ()
- (setq len (reset-stacks))
- (clear)
- (_hanoi len 0 1 2)
- (move-to 0 23)
- t
- )