about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJohn Kåre Alsaker <john.kare.alsaker@gmail.com>2017-07-10 23:13:52 +0200
committerJohn Kåre Alsaker <john.kare.alsaker@gmail.com>2017-07-28 15:46:24 +0200
commite62d9d5230535b1cd481c465f44a2c0aa666491f (patch)
treef021e937bd8112b4dd2bc52cd3044cb73742a5df
parenta88e7506a6419cb8d7ebc8c89188b0dba1c17d01 (diff)
Fix tests
-rw-r--r--src/test/run-pass/generator/implicit-argument-dead-when-suspended.rs25
-rw-r--r--src/test/run-pass/generator/iterator-count.rs2
2 files changed, 16 insertions, 11 deletions
diff --git a/src/test/run-pass/generator/implicit-argument-dead-when-suspended.rs b/src/test/run-pass/generator/implicit-argument-dead-when-suspended.rs
index 722ec2477ef..635d8fb3cdc 100644
--- a/src/test/run-pass/generator/implicit-argument-dead-when-suspended.rs
+++ b/src/test/run-pass/generator/implicit-argument-dead-when-suspended.rs
@@ -8,26 +8,31 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#![feature(generators)]
+#![feature(generators, generator_trait)]
 
-use std::cell::Cell;
+use std::ops::Generator;
+use std::sync::atomic::{AtomicUsize, ATOMIC_USIZE_INIT, Ordering};
 
-struct Flag<'a>(&'a Cell<bool>);
+static A: AtomicUsize = ATOMIC_USIZE_INIT;
 
-impl<'a> Drop for Flag<'a> {
+struct B;
+
+impl Drop for B {
     fn drop(&mut self) {
-        self.0.set(false)
+        A.fetch_add(1, Ordering::SeqCst);
     }
 }
 
 fn main() {
-    let alive = Cell::new(true);
+    let b = B;
 
-    let gen = || {
+    let mut gen = || {
         yield;
     };
 
-    gen.resume(Flag(&alive));
-
-    assert_eq!(alive.get(), false);
+    assert_eq!(A.load(Ordering::SeqCst), 0);
+    gen.resume(b);
+    assert_eq!(A.load(Ordering::SeqCst), 1);
+    drop(gen);
+    assert_eq!(A.load(Ordering::SeqCst), 1);
 }
diff --git a/src/test/run-pass/generator/iterator-count.rs b/src/test/run-pass/generator/iterator-count.rs
index e44aa059235..45ba663873b 100644
--- a/src/test/run-pass/generator/iterator-count.rs
+++ b/src/test/run-pass/generator/iterator-count.rs
@@ -37,7 +37,7 @@ fn main() {
     let end = 11;
 
     let closure_test = |start| {
-        || {
+        move || {
             for i in start..end {
                 yield i
             }