shithub: mc

Download patch

ref: d92ff16a7e9ba2919746620fac40c798b06955ce
parent: 666970ff83272349c1713169bf7cb49964366fb1
author: Ori Bernstein <ori@eigenstate.org>
date: Sun Oct 28 08:54:47 EDT 2018

Respect outdir and use it for tests.

	This makes our gitignore nicer.

--- a/.gitignore
+++ b/.gitignore
@@ -21,6 +21,7 @@
 
 # outputs
 obj/**
+test/obj/**
 6/6m
 muse/muse
 mbld/mbld
--- a/mbld/main.myr
+++ b/mbld/main.myr
@@ -72,11 +72,11 @@
 
 	b = mkbuild(tags)
 	if targname.len != 0
-		ok = buildimm(b, targname, cmd.args)
+		ok = buildimm(b, targname, cmd.args, bld.opt_objdir)
 	elif runsrc.len != 0
 		bld.opt_verbosity = -1
 		tmp = std.mktemppath("runmyr")
-		ok = buildimm(b, tmp, [runsrc][:])
+		ok = buildimm(b, tmp, [runsrc][:], bld.opt_objdir)
 		if ok
 			pid = runcmd(tmp, cmd.args)
 			match std.wait(pid)
@@ -115,7 +115,7 @@
 	;;
 }
 
-const buildimm = {b, targ, inputs
+const buildimm = {b, targ, inputs, objdir
 	var mt : bld.myrtarg
 
 	mt = [
@@ -125,7 +125,7 @@
 		.incpath=bld.opt_incpaths,
 		.libdeps=[][:]
 	]
-	bld.opt_objdir = ""
+	bld.opt_objdir = objdir
 	std.slpush(&b.all, "__out__")
 	std.htput(b.targs, "__out__", `bld.Bin &mt)
 	bld.deps(b)
--- a/test/runtest.rc
+++ b/test/runtest.rc
@@ -5,7 +5,7 @@
 MYR_MUSE=../muse/6.out
 fn build {
 	rm -f $1 $1^.6 $1^.use
-	../obj/mbld/mbld -Bnone -o '' -b $1 -I../obj/lib/std -I../obj/lib/sys -I../obj/lib/regex -r../rt/_myrrt.6 $1^.myr
+	../obj/mbld/mbld -Bnone -o 'out' -b $1 -I../obj/lib/std -I../obj/lib/sys -I../obj/lib/regex -r../rt/_myrrt.6 $1^.myr
 }
 
 fn pass {
@@ -20,7 +20,7 @@
 	st='*'^$2
 	if(~ $2 0)
 		st=''''''
-	./$1 $3
+	./out/$1 $3
 	if(eval '~ $status '$st)
 		pass $1
 	if not
@@ -30,7 +30,7 @@
 fn expectprint {
 	ifs='
 '
-	if(~ `{./$1 $3} $2)
+	if(~ `{./out/$1 $3} $2)
 		pass $1
 	if not
 		fail $1
@@ -39,7 +39,7 @@
 fn expectcmp {
 	t=/tmp/myrtest-^$1
 	rm -f $t
-	./$1 $3 > $t
+	./out/$1 $3 > $t
 	if (cmp $t data/$1-expected)
 		pass $1
 	if not
@@ -49,7 +49,7 @@
 fn expectfcmp {
 	t=/tmp/myrtest-^$1
 	rm -f $t
-	./$1 $3
+	./out/$1 $3
 	if (cmp $2 data/$1-expected)
 		pass $1
 	if not
--- a/test/runtest.sh
+++ b/test/runtest.sh
@@ -1,5 +1,4 @@
 #!/bin/sh
-#set -x
 export PATH=.:$PATH
 export MYR_MC=../6/6m
 export MYR_MUSE=../muse/muse
@@ -8,8 +7,9 @@
 NPASSES=0
 
 build() {
-	rm -f $1 $1.o $1.s $1.use
-	../obj/mbld/mbld -Bnone -o '' -b $1 -I../obj/lib/std -I../obj/lib/sys -I../obj/lib/regex -r../rt/_myrrt.o $1.myr
+	rm -f out/$1 out/$1.o out/$1.s out/$1.use
+	mkdir -p out
+	../obj/mbld/mbld -Bnone -o 'out' -b $1 -I../obj/lib/std -I../obj/lib/sys -I../obj/lib/regex -r../rt/_myrrt.o $1.myr
 }
 
 pass() {
@@ -25,7 +25,7 @@
 }
 
 expectstatus() {
-	./$1 $3
+	./out/$1 $3
 	if [ $? -eq $2 ]; then
 		pass $1
 		return
@@ -35,7 +35,7 @@
 }
 
 expectprint() {
-	if [ "`./$1 $3`" != "$2" ]; then
+	if [ "`./out/$1 $3`" != "$2" ]; then
 		fail $1
 	else
 		pass $1
@@ -48,7 +48,7 @@
 	else
 		t=/tmp/myrtest-$1-$RANDOM
 	fi
-	./$1 $3 > $t
+	./out/$1 $3 > $t
 	if cmp $t data/$1-expected; then
 		pass $1
 	else
@@ -58,7 +58,7 @@
 }
 
 expectfcompare() {
-	./$1 $3
+	./out/$1 $3
 	if cmp data/$1-expected $2; then
 		pass $1
 	else