More fixes to fast-check.

This commit is contained in:
Graydon Hoare 2011-06-29 17:54:05 -07:00
parent a82aeb7af6
commit afabde19dc
3 changed files with 14 additions and 9 deletions

View File

@ -206,11 +206,11 @@ stage2/lib/$(FT_LIB): test/$(FT).rc $(SREQ2)
@$(call E, compile_and_link: $@)
$(STAGE2) --shared -o $@ $<
test/$(FT_DRIVER): test/$(FT_DRIVER).rs stage2/lib/$(FT_LIB) $(SREQ2)
test/$(FT_DRIVER)$(X): test/$(FT_DRIVER).rs stage2/lib/$(FT_LIB) $(SREQ2)
@$(call E, compile_and_link: $@)
$(STAGE2) -o $@ $<
test/$(FT_DRIVER).out: test/$(FT_DRIVER) $(SREQ2)
test/$(FT_DRIVER).out: test/$(FT_DRIVER)$(X) $(SREQ2)
$(Q)$(call CFG_RUN_TEST, $<) | tee $@

View File

@ -285,7 +285,11 @@ fn eval_crate_directive(ctx cx, env e, @ast::crate_directive cdir, str prefix,
case (some(?f)) { file_path = f; }
case (none) { }
}
auto full_path = prefix + std::fs::path_sep() + file_path;
auto full_path = if (std::fs::path_is_absolute(file_path)) {
file_path
} else {
prefix + std::fs::path_sep() + file_path
};
if (cx.mode == mode_depend) { cx.deps += [full_path]; ret; }
auto p0 =
new_parser(cx.sess, e, full_path, cx.chpos,
@ -306,7 +310,11 @@ fn eval_crate_directive(ctx cx, env e, @ast::crate_directive cdir, str prefix,
case (ast::cdir_dir_mod(?id, ?dir_opt, ?cdirs, ?attrs)) {
auto path = id;
alt (dir_opt) { case (some(?d)) { path = d; } case (none) { } }
auto full_path = prefix + std::fs::path_sep() + path;
auto full_path = if (std::fs::path_is_absolute(path)) {
path
} else {
prefix + std::fs::path_sep() + path
};
auto m0 = eval_crate_directives_to_mod(cx, e, cdirs, full_path);
auto i = @rec(ident=id,
attrs=attrs,

View File

@ -17,6 +17,7 @@ if not src_dir:
raise Exception("missing env var CFG_SRC_DIR")
run_pass = os.path.join(src_dir, "src", "test", "run-pass")
run_pass = os.path.abspath(run_pass)
stage2_tests = []
take_args = {}
@ -32,17 +33,13 @@ for t in os.listdir(run_pass):
stage2_tests.sort()
# add a .. prefix because we're about to write down into test/..
parent_run_pass = os.path.join("..", run_pass);
c = open("test/run_pass_stage2.rc", "w")
i = 0
c.write("// AUTO-GENERATED FILE: DO NOT EDIT\n")
c.write("#[link(name=\"run_pass_stage2\", vers=\"0.1\")];\n")
for t in stage2_tests:
c.write("mod t_%d = \"%s\";\n"
% (i, os.path.join(parent_run_pass, t)))
% (i, os.path.join(run_pass, t)))
i += 1
c.close()