mirror of git://gcc.gnu.org/git/gcc.git
				
				
				
			
		
			
				
	
	
		
			92 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			92 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Go
		
	
	
	
// 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 strconv_test
 | 
						|
 | 
						|
import (
 | 
						|
	"bytes"
 | 
						|
	. "strconv"
 | 
						|
	"testing"
 | 
						|
)
 | 
						|
 | 
						|
type atobTest struct {
 | 
						|
	in  string
 | 
						|
	out bool
 | 
						|
	err error
 | 
						|
}
 | 
						|
 | 
						|
var atobtests = []atobTest{
 | 
						|
	{"", false, ErrSyntax},
 | 
						|
	{"asdf", false, ErrSyntax},
 | 
						|
	{"0", false, nil},
 | 
						|
	{"f", false, nil},
 | 
						|
	{"F", false, nil},
 | 
						|
	{"FALSE", false, nil},
 | 
						|
	{"false", false, nil},
 | 
						|
	{"False", false, nil},
 | 
						|
	{"1", true, nil},
 | 
						|
	{"t", true, nil},
 | 
						|
	{"T", true, nil},
 | 
						|
	{"TRUE", true, nil},
 | 
						|
	{"true", true, nil},
 | 
						|
	{"True", true, nil},
 | 
						|
}
 | 
						|
 | 
						|
func TestParseBool(t *testing.T) {
 | 
						|
	for _, test := range atobtests {
 | 
						|
		b, e := ParseBool(test.in)
 | 
						|
		if test.err != nil {
 | 
						|
			// expect an error
 | 
						|
			if e == nil {
 | 
						|
				t.Errorf("%s: expected %s but got nil", test.in, test.err)
 | 
						|
			} else {
 | 
						|
				// NumError assertion must succeed; it's the only thing we return.
 | 
						|
				if test.err != e.(*NumError).Err {
 | 
						|
					t.Errorf("%s: expected %s but got %s", test.in, test.err, e)
 | 
						|
				}
 | 
						|
			}
 | 
						|
		} else {
 | 
						|
			if e != nil {
 | 
						|
				t.Errorf("%s: expected no error but got %s", test.in, e)
 | 
						|
			}
 | 
						|
			if b != test.out {
 | 
						|
				t.Errorf("%s: expected %t but got %t", test.in, test.out, b)
 | 
						|
			}
 | 
						|
		}
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
var boolString = map[bool]string{
 | 
						|
	true:  "true",
 | 
						|
	false: "false",
 | 
						|
}
 | 
						|
 | 
						|
func TestFormatBool(t *testing.T) {
 | 
						|
	for b, s := range boolString {
 | 
						|
		if f := FormatBool(b); f != s {
 | 
						|
			t.Errorf(`FormatBool(%v): expected %q but got %q`, b, s, f)
 | 
						|
		}
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
type appendBoolTest struct {
 | 
						|
	b   bool
 | 
						|
	in  []byte
 | 
						|
	out []byte
 | 
						|
}
 | 
						|
 | 
						|
var appendBoolTests = []appendBoolTest{
 | 
						|
	{true, []byte("foo "), []byte("foo true")},
 | 
						|
	{false, []byte("foo "), []byte("foo false")},
 | 
						|
}
 | 
						|
 | 
						|
func TestAppendBool(t *testing.T) {
 | 
						|
	for _, test := range appendBoolTests {
 | 
						|
		b := AppendBool(test.in, test.b)
 | 
						|
		if !bytes.Equal(b, test.out) {
 | 
						|
			t.Errorf("AppendBool(%q, %v): expected %q but got %q", test.in, test.b, test.out, b)
 | 
						|
		}
 | 
						|
	}
 | 
						|
}
 |