...
Run Format

Source file test/initialize.go

Documentation: test

  // run
  
  // 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.
  
  // Test initialization of package-level variables.
  
  package main
  
  import "fmt"
  import "reflect"
  
  type S struct {
  	A, B, C, X, Y, Z int
  }
  
  type T struct {
  	S
  }
  
  var a1 = S { 0, 0, 0, 1, 2, 3 }
  var b1 = S { X: 1, Z: 3, Y: 2 }
  
  var a2 = S { 0, 0, 0, 0, 0, 0, }
  var b2 = S { }
  
  var a3 = T { S { 1, 2, 3, 0, 0, 0, } }
  var b3 = T { S: S{ A: 1, B: 2, C: 3 } }
  
  var a4 = &[16]byte { 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, }
  var b4 = &[16]byte { 4: 1, 1, 1, 1, 12: 1, 1, }
  
  var a5 = &[16]byte { 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, }
  var b5 = &[16]byte { 1, 4: 1, 1, 1, 1, 12: 1, 1, }
  
  var a6 = &[16]byte { 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, }
  var b6 = &[...]byte { 1, 4: 1, 1, 1, 1, 12: 1, 1, 0, 0,}
  
  type Same struct {
  	a, b interface{}
  }
  
  var same = []Same {
  	Same{ a1, b1 },
  	Same{ a2, b2 },
  	Same{ a3, b3 },
  	Same{ a4, b4 },
  	Same{ a5, b5 },
  	Same{ a6, b6 },
  }
  
  func main() {
  	ok := true
  	for _, s := range same {
  		if !reflect.DeepEqual(s.a, s.b) {
  			ok = false
  			fmt.Printf("not same: %v and %v\n", s.a, s.b)
  		}
  	}
  	if !ok {
  		fmt.Println("BUG: test/initialize")
  	}
  }
  

View as plain text