summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Hodge <tpg@ucc.asn.au>2017-04-13 15:35:06 +0800
committerJohn Hodge <tpg@ucc.asn.au>2017-04-13 15:35:06 +0800
commitffaaf8047e615206e5eb27097a0b6e669f521b96 (patch)
tree79047670e7d1e83a986cdead3730beb4eae4da2d
parent285305b6fb1cd94a47332811fb34f599af8ad795 (diff)
downloadmrust-ffaaf8047e615206e5eb27097a0b6e669f521b96.tar.gz
Expand - Tweaks to test harness
-rw-r--r--Makefile15
-rw-r--r--src/expand/format_args.cpp1
-rw-r--r--src/expand/mod.cpp2
-rw-r--r--src/main.cpp5
4 files changed, 20 insertions, 3 deletions
diff --git a/Makefile b/Makefile
index 2e907516..9ae61cd0 100644
--- a/Makefile
+++ b/Makefile
@@ -146,7 +146,20 @@ output/lib%.hir: $(RUSTCSRC)src/lib%/src/lib.rs $(RUSTCSRC) $(BIN)
$(DBG) $(ENV_$@) $(BIN) $< -o $@ $(RUST_FLAGS) $(ARGS_$@) $(PIPECMD)
# # HACK: Work around gdb returning success even if the program crashed
@test -e $@
-
+output/lib%-test: $(RUSTCSRC)src/lib%/lib.rs $(RUSTCSRC) $(BIN)
+ @echo "--- [MRUSTC] --test -o $@"
+ @mkdir -p output/
+ @rm -f $@
+ $(DBG) $(ENV_$@) $(BIN) --test $< -o $@ -L output/libs $(RUST_FLAGS) $(ARGS_$@) $(PIPECMD)
+# # HACK: Work around gdb returning success even if the program crashed
+ @test -e $@
+output/lib%-test: $(RUSTCSRC)src/lib%/src/lib.rs $(RUSTCSRC) $(BIN)
+ @echo "--- [MRUSTC] $@"
+ @mkdir -p output/
+ @rm -f $@
+ $(DBG) $(ENV_$@) $(BIN) --test $< -o $@ -L output/libs $(RUST_FLAGS) $(ARGS_$@) $(PIPECMD)
+# # HACK: Work around gdb returning success even if the program crashed
+ @test -e $@
fcn_extcrate = $(patsubst %,output/lib%.hir,$(1))
fn_getdeps = \
diff --git a/src/expand/format_args.cpp b/src/expand/format_args.cpp
index 0f881a6e..89503e0c 100644
--- a/src/expand/format_args.cpp
+++ b/src/expand/format_args.cpp
@@ -251,6 +251,7 @@ namespace {
if( *s == '0' ) {
args.zero_pad = true;
+ args.align_char = '0';
s ++;
}
else {
diff --git a/src/expand/mod.cpp b/src/expand/mod.cpp
index f152b1ab..df0a26f2 100644
--- a/src/expand/mod.cpp
+++ b/src/expand/mod.cpp
@@ -67,7 +67,7 @@ void Expand_Attrs(/*const */::AST::MetaItems& attrs, AttrStage stage, ::std::fu
}
void Expand_Attrs(::AST::MetaItems& attrs, AttrStage stage, ::AST::Crate& crate, const ::AST::Path& path, ::AST::Module& mod, ::AST::Item& item)
{
- Expand_Attrs(attrs, stage, [&](const auto& sp, const auto& d, const auto& a){ d.handle(sp, a, crate, path, mod, item); });
+ Expand_Attrs(attrs, stage, [&](const auto& sp, const auto& d, const auto& a){ if(!item.is_None()) d.handle(sp, a, crate, path, mod, item); });
}
void Expand_Attrs(::AST::MetaItems& attrs, AttrStage stage, ::AST::Crate& crate, ::AST::Module& mod, ::AST::ImplDef& impl)
{
diff --git a/src/main.cpp b/src/main.cpp
index 0c181c29..2f392bb7 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -224,7 +224,6 @@ int main(int argc, char *argv[])
if( params.test_harness )
{
- // TODO: Generate harness main (and override the mrustc-main lang item)
Expand_TestHarness(crate);
}
@@ -273,6 +272,10 @@ int main(int argc, char *argv[])
}
}
crate.m_crate_name = crate_name;
+ if( params.test_harness )
+ {
+ crate.m_crate_name += "$test";
+ }
if( params.outfile == "" ) {
switch( crate.m_crate_type )