Skip to content

Commit 0cad93f

Browse files
committed
---
yaml --- r: 143331 b: refs/heads/try2 c: 796b337 h: refs/heads/master i: 143329: aa2b4a9 143327: 24ba556 v: v3
1 parent e41f65b commit 0cad93f

File tree

2 files changed

+112
-106
lines changed

2 files changed

+112
-106
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ refs/heads/snap-stage3: 78a7676898d9f80ab540c6df5d4c9ce35bb50463
55
refs/heads/try: 519addf6277dbafccbb4159db4b710c37eaa2ec5
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
77
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b
8-
refs/heads/try2: 03a16dbb8e6341e622f7d09c9be99ec5502239f3
8+
refs/heads/try2: 796b3371f9bbb6f6ed189219d1b055d7ed737e78
99
refs/heads/dist-snap: ba4081a5a8573875fed17545846f6f6902c8ba8d
1010
refs/tags/release-0.2: c870d2dffb391e14efb05aa27898f1f6333a9596
1111
refs/tags/release-0.3: b5f0d0f648d9a6153664837026ba1be43d3e2503

branches/try2/src/libstd/option.rs

Lines changed: 111 additions & 105 deletions
Original file line numberDiff line numberDiff line change
@@ -441,134 +441,140 @@ impl<'self, A> Iterator<&'self mut A> for OptionMutIterator<'self, A> {
441441
}
442442
}
443443

444-
#[test]
445-
fn test_unwrap_ptr() {
446-
unsafe {
447-
let x = ~0;
448-
let addr_x: *int = ::cast::transmute(&*x);
444+
#[cfg(test)]
445+
mod tests {
446+
use super::*;
447+
use util;
448+
449+
#[test]
450+
fn test_unwrap_ptr() {
451+
unsafe {
452+
let x = ~0;
453+
let addr_x: *int = ::cast::transmute(&*x);
454+
let opt = Some(x);
455+
let y = opt.unwrap();
456+
let addr_y: *int = ::cast::transmute(&*y);
457+
assert_eq!(addr_x, addr_y);
458+
}
459+
}
460+
461+
#[test]
462+
fn test_unwrap_str() {
463+
let x = ~"test";
464+
let addr_x = x.as_imm_buf(|buf, _len| buf);
449465
let opt = Some(x);
450466
let y = opt.unwrap();
451-
let addr_y: *int = ::cast::transmute(&*y);
467+
let addr_y = y.as_imm_buf(|buf, _len| buf);
452468
assert_eq!(addr_x, addr_y);
453469
}
454-
}
455470

456-
#[test]
457-
fn test_unwrap_str() {
458-
let x = ~"test";
459-
let addr_x = x.as_imm_buf(|buf, _len| buf);
460-
let opt = Some(x);
461-
let y = opt.unwrap();
462-
let addr_y = y.as_imm_buf(|buf, _len| buf);
463-
assert_eq!(addr_x, addr_y);
464-
}
471+
#[test]
472+
fn test_unwrap_resource() {
473+
struct R {
474+
i: @mut int,
475+
}
465476

466-
#[test]
467-
fn test_unwrap_resource() {
468-
struct R {
469-
i: @mut int,
470-
}
477+
#[unsafe_destructor]
478+
impl ::ops::Drop for R {
479+
fn drop(&self) { *(self.i) += 1; }
480+
}
471481

472-
#[unsafe_destructor]
473-
impl ::ops::Drop for R {
474-
fn drop(&self) { *(self.i) += 1; }
475-
}
482+
fn R(i: @mut int) -> R {
483+
R {
484+
i: i
485+
}
486+
}
476487

477-
fn R(i: @mut int) -> R {
478-
R {
479-
i: i
488+
let i = @mut 0;
489+
{
490+
let x = R(i);
491+
let opt = Some(x);
492+
let _y = opt.unwrap();
480493
}
494+
assert_eq!(*i, 1);
481495
}
482496

483-
let i = @mut 0;
484-
{
485-
let x = R(i);
486-
let opt = Some(x);
487-
let _y = opt.unwrap();
497+
#[test]
498+
fn test_option_dance() {
499+
let x = Some(());
500+
let mut y = Some(5);
501+
let mut y2 = 0;
502+
for x.iter().advance |_x| {
503+
y2 = y.take_unwrap();
504+
}
505+
assert_eq!(y2, 5);
506+
assert!(y.is_none());
507+
}
508+
#[test] #[should_fail] #[ignore(cfg(windows))]
509+
fn test_option_too_much_dance() {
510+
let mut y = Some(util::NonCopyable);
511+
let _y2 = y.take_unwrap();
512+
let _y3 = y.take_unwrap();
513+
}
514+
515+
#[test]
516+
fn test_option_while_some() {
517+
let mut i = 0;
518+
do Some(10).while_some |j| {
519+
i += 1;
520+
if (j > 0) {
521+
Some(j-1)
522+
} else {
523+
None
524+
}
525+
}
526+
assert_eq!(i, 11);
488527
}
489-
assert_eq!(*i, 1);
490-
}
491528

492-
#[test]
493-
fn test_option_dance() {
494-
let x = Some(());
495-
let mut y = Some(5);
496-
let mut y2 = 0;
497-
for x.iter().advance |_x| {
498-
y2 = y.take_unwrap();
529+
#[test]
530+
fn test_get_or_zero() {
531+
let some_stuff = Some(42);
532+
assert_eq!(some_stuff.get_or_zero(), 42);
533+
let no_stuff: Option<int> = None;
534+
assert_eq!(no_stuff.get_or_zero(), 0);
499535
}
500-
assert_eq!(y2, 5);
501-
assert!(y.is_none());
502-
}
503-
#[test] #[should_fail] #[ignore(cfg(windows))]
504-
fn test_option_too_much_dance() {
505-
let mut y = Some(util::NonCopyable);
506-
let _y2 = y.take_unwrap();
507-
let _y3 = y.take_unwrap();
508-
}
509536

510-
#[test]
511-
fn test_option_while_some() {
512-
let mut i = 0;
513-
do Some(10).while_some |j| {
514-
i += 1;
515-
if (j > 0) {
516-
Some(j-1)
517-
} else {
518-
None
519-
}
537+
#[test]
538+
fn test_filtered() {
539+
let some_stuff = Some(42);
540+
let modified_stuff = some_stuff.filtered(|&x| {x < 10});
541+
assert_eq!(some_stuff.get(), 42);
542+
assert!(modified_stuff.is_none());
520543
}
521-
assert_eq!(i, 11);
522-
}
523544

524-
#[test]
525-
fn test_get_or_zero() {
526-
let some_stuff = Some(42);
527-
assert_eq!(some_stuff.get_or_zero(), 42);
528-
let no_stuff: Option<int> = None;
529-
assert_eq!(no_stuff.get_or_zero(), 0);
530-
}
545+
#[test]
546+
fn test_iter() {
547+
let val = 5;
531548

532-
#[test]
533-
fn test_filtered() {
534-
let some_stuff = Some(42);
535-
let modified_stuff = some_stuff.filtered(|&x| {x < 10});
536-
assert_eq!(some_stuff.get(), 42);
537-
assert!(modified_stuff.is_none());
538-
}
549+
let x = Some(val);
550+
let mut it = x.iter();
539551

540-
#[test]
541-
fn test_iter() {
542-
let val = 5;
543-
544-
let x = Some(val);
545-
let mut it = x.iter();
546-
547-
assert_eq!(it.size_hint(), (1, Some(1)));
548-
assert_eq!(it.next(), Some(&val));
549-
assert_eq!(it.size_hint(), (0, Some(0)));
550-
assert!(it.next().is_none());
551-
}
552+
assert_eq!(it.size_hint(), (1, Some(1)));
553+
assert_eq!(it.next(), Some(&val));
554+
assert_eq!(it.size_hint(), (0, Some(0)));
555+
assert!(it.next().is_none());
556+
}
552557

553-
#[test]
554-
fn test_mut_iter() {
555-
let val = 5;
556-
let new_val = 11;
558+
#[test]
559+
fn test_mut_iter() {
560+
let val = 5;
561+
let new_val = 11;
557562

558-
let mut x = Some(val);
559-
let mut it = x.mut_iter();
563+
let mut x = Some(val);
564+
let mut it = x.mut_iter();
560565

561-
assert_eq!(it.size_hint(), (1, Some(1)));
566+
assert_eq!(it.size_hint(), (1, Some(1)));
562567

563-
match it.next() {
564-
Some(interior) => {
565-
assert_eq!(*interior, val);
566-
*interior = new_val;
567-
assert_eq!(x, Some(new_val));
568+
match it.next() {
569+
Some(interior) => {
570+
assert_eq!(*interior, val);
571+
*interior = new_val;
572+
assert_eq!(x, Some(new_val));
573+
}
574+
None => assert!(false),
568575
}
569-
None => assert!(false),
570-
}
571576

572-
assert_eq!(it.size_hint(), (0, Some(0)));
573-
assert!(it.next().is_none());
577+
assert_eq!(it.size_hint(), (0, Some(0)));
578+
assert!(it.next().is_none());
579+
}
574580
}

0 commit comments

Comments
 (0)