diff options
| author | Rob Pike <r@golang.org> | 2008-06-06 14:27:34 -0700 |
|---|---|---|
| committer | Rob Pike <r@golang.org> | 2008-06-06 14:27:34 -0700 |
| commit | ab34d15f69de4e5b3330b43e23f99bf3ee2ed10a (patch) | |
| tree | 22e573d0f4432512779320404d5df24503fc4919 /test/ken/robfunc.go | |
| parent | 384c5bed2d921027085cd1f2d4eff9a2652b6513 (diff) | |
| download | go-ab34d15f69de4e5b3330b43e23f99bf3ee2ed10a.tar.xz | |
add ken's tests.
update run to work with multiple directories
SVN=121485
Diffstat (limited to 'test/ken/robfunc.go')
| -rw-r--r-- | test/ken/robfunc.go | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/test/ken/robfunc.go b/test/ken/robfunc.go new file mode 100644 index 0000000000..addd05b269 --- /dev/null +++ b/test/ken/robfunc.go @@ -0,0 +1,96 @@ +// $G $D/$F.go && $L $F.$A && ./$A.out + +// Copyright 2009 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. + +package main + +func assertequal(is, shouldbe int, msg string) { + if is != shouldbe { + print "assertion fail" + msg + "\n"; + panic 1; + } +} + +func f1() { +} + +func f2(a int) { +} + +func f3(a, b int) int { + return a+b; +} + +func f4(a, b int, c float) int { + return (a+b)/2 + int(c); +} + +func f5(a int) int { + return 5; +} + +func f6(a int) (r int) { + return 6; +} + +func f7(a int) (int, float) { + return 7, 7.0; +} + + +func f8(a int) (a int, b float) { + return 8, 8.0; +} + +type T struct { + x, y int; +} + +func (t *T) m10(a int, b float) int { + return (t.x+a) * (t.y+int(b)); +} + + +func f9(a int) (i int, f float) { +// BUG funny return value + i := 9; + f := float(9); + return i, f; +// return; +} + + +func main() { + f1(); + f2(1); + r3 := f3(1, 2); + assertequal(r3, 3, "3"); + r4 := f4(0, 2, 3.0); + assertequal(r4, 4, "4"); + r5 := f5(1); + assertequal(r5, 5, "5"); + r6 := f6(1); + assertequal(r6, 6, "6"); + var r7 int; + var s7 float; + r7, s7 = f7(1); + assertequal(r7, 7, "r7"); + assertequal(int(s7), 7, "s7"); + var r8 int; + var s8 float; + r8, s8 = f8(1); + assertequal(r8, 8, "r8"); + assertequal(int(s8), 8, "s8"); + var r9 int; + var s9 float; + r9, s9 = f9(1); + assertequal(r9, 9, "r9"); + assertequal(int(s9), 9, "s9"); + var t *T = new(T); + t.x = 1; + t.y = 2; + r10 := t.m10(1, 3.0); + assertequal(r10, 10, "10"); +} |
