From 3dcb79dac91f0a53fecbf1c5340db6c54c5a2e71 Mon Sep 17 00:00:00 2001 From: Brian Anderson Date: Mon, 21 Mar 2011 21:30:32 -0400 Subject: [PATCH] Add a regression test for channels of nil, which happens to work in rustc, but not in rustboot --- Makefile.in | 1 + src/Makefile | 1 + src/test/run-pass/task-comm-chan-nil.rs | 17 +++++++++++++++++ 3 files changed, 19 insertions(+) create mode 100644 src/test/run-pass/task-comm-chan-nil.rs diff --git a/Makefile.in b/Makefile.in index 865a3827950..29d5eb111f9 100644 --- a/Makefile.in +++ b/Makefile.in @@ -501,6 +501,7 @@ TASK_XFAILS := $(addprefix $(S)src/test/run-pass/, \ task-comm-12.rs \ task-comm-2.rs \ task-comm-9.rs \ + task-comm-chan-nil.rs \ task-life-0.rs \ alt-type-simple.rs \ many.rs) diff --git a/src/Makefile b/src/Makefile index 48254b028df..229b4e49a4e 100644 --- a/src/Makefile +++ b/src/Makefile @@ -434,6 +434,7 @@ TASK_XFAILS := test/run-pass/task-comm-8.rs \ test/run-pass/task-comm-12.rs \ test/run-pass/task-comm-2.rs \ test/run-pass/task-comm-9.rs \ + test/run-pass/task-comm-chan-nil.rs \ test/run-pass/task-life-0.rs \ test/run-pass/alt-type-simple.rs \ test/run-pass/many.rs diff --git a/src/test/run-pass/task-comm-chan-nil.rs b/src/test/run-pass/task-comm-chan-nil.rs new file mode 100644 index 00000000000..c8f5a90f59e --- /dev/null +++ b/src/test/run-pass/task-comm-chan-nil.rs @@ -0,0 +1,17 @@ +// -*- rust -*- + +// rustboot can't transmit nils across channels because they don't have +// any size, but rustc currently can because they do have size. Whether +// or not this is desirable I don't know, but here's a regression test. + +impure fn main() { + let port[()] po = port(); + let chan[()] ch = chan(po); + + ch <| (); + + let () n; + n <- po; + + check (n == ()); +}