OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [go.test/] [test/] [simassign.go] - Rev 700

Compare with Previous | Blame | View Log

// $G $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

var a, b, c, d, e, f, g, h, i int

func printit() {
        println(a, b, c, d, e, f, g, h, i)
}

func testit(permuteok bool) bool {
        if a+b+c+d+e+f+g+h+i != 45 {
                print("sum does not add to 45\n")
                printit()
                return false
        }
        return permuteok ||
                a == 1 &&
                        b == 2 &&
                        c == 3 &&
                        d == 4 &&
                        e == 5 &&
                        f == 6 &&
                        g == 7 &&
                        h == 8 &&
                        i == 9
}

func swap(x, y int) (u, v int) {
        return y, x
}

func main() {
        a = 1
        b = 2
        c = 3
        d = 4
        e = 5
        f = 6
        g = 7
        h = 8
        i = 9

        if !testit(false) {
                panic("init val\n")
        }

        for z := 0; z < 100; z++ {
                a, b, c, d, e, f, g, h, i = b, c, d, a, i, e, f, g, h

                if !testit(z%20 != 19) {
                        print("on ", z, "th iteration\n")
                        printit()
                        panic("fail")
                }
        }

        if !testit(false) {
                print("final val\n")
                printit()
                panic("fail")
        }

        a, b = swap(1, 2)
        if a != 2 || b != 1 {
                panic("bad swap")
        }

        a, b = swap(swap(a, b))
        if a != 2 || b != 1 {
                panic("bad swap")
        }
}

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.