aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xbin/mkblddir17
-rwxr-xr-xbin/runtest51
-rw-r--r--share/paths.mk2
3 files changed, 69 insertions, 1 deletions
diff --git a/bin/mkblddir b/bin/mkblddir
new file mode 100755
index 0000000..bb646e0
--- /dev/null
+++ b/bin/mkblddir
@@ -0,0 +1,17 @@
+#!/bin/python
+
+import os
+
+ROOT = "/home/nolln/root"
+SRC = "sys"
+BUILD = "build"
+TEST = "test"
+IGNORED = ["build", "include", "lib", "bin", ".git", "vendor", "obj", "dep", ".generated"]
+
+if __name__ == "__main__":
+ for root, dirs, _ in os.walk(f"{ROOT}/{SRC}"):
+ dirs[:] = [d for d in dirs if d not in IGNORED]
+ for newroot in [BUILD, TEST]:
+ blddir = f"{ROOT}/{newroot}/{root[len(ROOT)+len(SRC)+2:]}"
+ if not os.path.exists(blddir):
+ os.mkdir(blddir)
diff --git a/bin/runtest b/bin/runtest
new file mode 100755
index 0000000..b48409b
--- /dev/null
+++ b/bin/runtest
@@ -0,0 +1,51 @@
+#!/bin/python
+
+import os, sys
+
+from io import StringIO as buf
+from subprocess import PIPE, Popen
+
+root = "/home/nolln/root/test"
+
+def usage():
+ print("usage:")
+ print("runtest [dir | file]*")
+
+def run(bin):
+ print(f">Test of {os.path.basename(bin)}")
+ cmd = Popen(bin, stdout=PIPE, stderr=PIPE)
+ out, err = cmd.communicate()
+ print(">>output:")
+ for line in buf(out.decode('utf-8')).readlines():
+ print(f" {line.strip()}")
+ if len(err) > 0:
+ print(">>errors:")
+ for line in buf(err.decode('utf-8')).readlines():
+ print(f" {line.strip()}")
+ print(f">>[OK]")
+
+def walk(dir):
+ for root, _, bins in os.walk(dir):
+ for bin in bins:
+ run(f"{root}/{bin}")
+
+def main(args):
+ for arg in args:
+ dir = f"{root}/{arg}"
+ if os.path.isdir(dir):
+ if not os.path.exists(dir):
+ raise ValueError(f"directory '{dir}' does not exist")
+ print(f"Running tests of {arg}")
+ print("---------------------------------------------------")
+ walk(dir)
+ else:
+ bin = dir
+ if not os.path.exists(bin):
+ raise ValueError(f"binary '{bin}' does not exist")
+ run(bin)
+
+if __name__ == "__main__":
+ if len(sys.argv) == 1:
+ usage()
+
+ main(sys.argv[1:])
diff --git a/share/paths.mk b/share/paths.mk
index e4fabcc..fe706a9 100644
--- a/share/paths.mk
+++ b/share/paths.mk
@@ -9,7 +9,7 @@ DEPS := $(DEPS) $(DEPS_$(d))
LIBS_$(d) := $(patsubst $(SRC_DIR)/%, $(OBJ_DIR)/%, $(LIBS_$(d)))
LIBS := $(LIBS) $(LIBS_$(d))
-BINS_$(d) := $(patsubst $(SRC_DIR)/%, $(OBJ_DIR)/%, $(BINS_$(d)))
+BINS_$(d) := $(patsubst $(SRC_DIR)/%, $(BIN_DIR)/%, $(BINS_$(d)))
BINS := $(BINS) $(BINS_$(d))
TSTS_$(d) := $(patsubst $(SRC_DIR)/%, $(TST_DIR)/%, $(TSTS_$(d)))