diff options
author | Ondřej Surý <ondrej@sury.org> | 2011-09-13 13:11:55 +0200 |
---|---|---|
committer | Ondřej Surý <ondrej@sury.org> | 2011-09-13 13:11:55 +0200 |
commit | 80f18fc933cf3f3e829c5455a1023d69f7b86e52 (patch) | |
tree | 4b825dc642cb6eb9a060e54bf8d69288fbee4904 /test/recover2.go | |
parent | 28592ee1ea1f5cdffcf85472f9de0285d928cf12 (diff) | |
download | golang-80f18fc933cf3f3e829c5455a1023d69f7b86e52.tar.gz |
Imported Upstream version 60
Diffstat (limited to 'test/recover2.go')
-rw-r--r-- | test/recover2.go | 87 |
1 files changed, 0 insertions, 87 deletions
diff --git a/test/recover2.go b/test/recover2.go deleted file mode 100644 index 9affe25d4..000000000 --- a/test/recover2.go +++ /dev/null @@ -1,87 +0,0 @@ -// $G $D/$F.go && $L $F.$A && ./$A.out - -// Copyright 2010 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Test of recover for run-time errors. - -// TODO(rsc): -// null pointer accesses - -package main - -import ( - "os" - "strings" -) - -var x = make([]byte, 10) - -func main() { - test1() - test2() - test3() - test4() - test5() - test6() - test7() -} - -func mustRecover(s string) { - v := recover() - if v == nil { - panic("expected panic") - } - if e := v.(os.Error).String(); strings.Index(e, s) < 0 { - panic("want: " + s + "; have: " + e) - } -} - -func test1() { - defer mustRecover("index") - println(x[123]) -} - -func test2() { - defer mustRecover("slice") - println(x[5:15]) -} - -func test3() { - defer mustRecover("slice") - var lo = 11 - var hi = 9 - println(x[lo:hi]) -} - -func test4() { - defer mustRecover("interface") - var x interface{} = 1 - println(x.(float32)) -} - -type T struct { - a, b int -} - -func test5() { - defer mustRecover("uncomparable") - var x T - var z interface{} = x - println(z != z) -} - -func test6() { - defer mustRecover("unhashable") - var x T - var z interface{} = x - m := make(map[interface{}]int) - m[z] = 1 -} - -func test7() { - defer mustRecover("divide by zero") - var x, y int - println(x / y) -} |