about summary refs log tree commit diff
path: root/src/test/stdtest
diff options
context:
space:
mode:
authorTim Chevalier <chevalier@alum.wellesley.edu>2011-08-30 16:22:21 -0700
committerTim Chevalier <chevalier@alum.wellesley.edu>2011-08-30 16:39:22 -0700
commit268533a92055200a1b6a8bdbd916d620fa8306eb (patch)
treea8c85f34962d6dc0dc6a987456652cab7c810611 /src/test/stdtest
parentd37e8cfc6723f0f2dbefdb686a7e220062c1374c (diff)
downloadrust-268533a92055200a1b6a8bdbd916d620fa8306eb.tar.gz
rust-268533a92055200a1b6a8bdbd916d620fa8306eb.zip
Add a precondition on vec::zip
vec::zip now has the precondition that the two argument vectors
are the same length. Changed uses of it to reflect that.

Also added a few vector-enumerating utilities to vec.rs, which
necessitated in making some functions in u8 declared-pure.
Diffstat (limited to 'src/test/stdtest')
-rw-r--r--src/test/stdtest/qsort.rs6
-rw-r--r--src/test/stdtest/test.rs1
-rw-r--r--src/test/stdtest/vec.rs2
3 files changed, 8 insertions, 1 deletions
diff --git a/src/test/stdtest/qsort.rs b/src/test/stdtest/qsort.rs
index 250d77a4593..32109dc1caa 100644
--- a/src/test/stdtest/qsort.rs
+++ b/src/test/stdtest/qsort.rs
@@ -49,7 +49,11 @@ fn test_simple() {
     fn lteq(a: &int, b: &int) -> bool { int::le(a, b) }
     sort::quick_sort(lteq, names);
 
-    let pairs = vec::zip(expected, vec::from_mut(names));
+    let immut_names = vec::from_mut(names);
+
+ // Silly, but what else can we do?
+    check vec::same_length(expected, immut_names);
+    let pairs = vec::zip(expected, immut_names);
     for (a, b) in pairs { log #fmt["%d %d", a, b]; assert (a == b); }
 }
 
diff --git a/src/test/stdtest/test.rs b/src/test/stdtest/test.rs
index e32105c2f0a..a1fc943609e 100644
--- a/src/test/stdtest/test.rs
+++ b/src/test/stdtest/test.rs
@@ -86,6 +86,7 @@ fn sort_tests() {
          "test::ignored_tests_result_in_ignored", "test::parse_ignored_flag",
          "test::sort_tests"];
 
+    check vec::same_length(expected, filtered);
     let pairs = vec::zip(expected, filtered);
 
 
diff --git a/src/test/stdtest/vec.rs b/src/test/stdtest/vec.rs
index 2f9e691b62d..3d1df459067 100644
--- a/src/test/stdtest/vec.rs
+++ b/src/test/stdtest/vec.rs
@@ -302,6 +302,8 @@ fn test_any_and_all() {
 fn test_zip_unzip() {
     let v1 = [1, 2, 3];
     let v2 = [4, 5, 6];
+
+    check same_length(v1, v2); // Silly, but what else can we do?
     let z1 = vec::zip(v1, v2);
 
     assert ((1, 4) == z1[0]);