mirror of https://go.googlesource.com/go
48 lines
1.2 KiB
Go
48 lines
1.2 KiB
Go
// Copyright 2013 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.
|
|
|
|
// This file checks invariants of token.Token ordering that we rely on
|
|
// since package go/token doesn't provide any guarantees at the moment.
|
|
|
|
package types
|
|
|
|
import (
|
|
"go/token"
|
|
"testing"
|
|
)
|
|
|
|
var assignOps = map[token.Token]token.Token{
|
|
token.ADD_ASSIGN: token.ADD,
|
|
token.SUB_ASSIGN: token.SUB,
|
|
token.MUL_ASSIGN: token.MUL,
|
|
token.QUO_ASSIGN: token.QUO,
|
|
token.REM_ASSIGN: token.REM,
|
|
token.AND_ASSIGN: token.AND,
|
|
token.OR_ASSIGN: token.OR,
|
|
token.XOR_ASSIGN: token.XOR,
|
|
token.SHL_ASSIGN: token.SHL,
|
|
token.SHR_ASSIGN: token.SHR,
|
|
token.AND_NOT_ASSIGN: token.AND_NOT,
|
|
}
|
|
|
|
func TestZeroTok(t *testing.T) {
|
|
// zero value for token.Token must be token.ILLEGAL
|
|
var zero token.Token
|
|
if token.ILLEGAL != zero {
|
|
t.Errorf("%s == %d; want 0", token.ILLEGAL, zero)
|
|
}
|
|
}
|
|
|
|
func TestAssignOp(t *testing.T) {
|
|
// there are fewer than 256 tokens
|
|
for i := 0; i < 256; i++ {
|
|
tok := token.Token(i)
|
|
got := assignOp(tok)
|
|
want := assignOps[tok]
|
|
if got != want {
|
|
t.Errorf("for assignOp(%s): got %s; want %s", tok, got, want)
|
|
}
|
|
}
|
|
}
|