You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

94 lines
2.2 KiB

// Copyright 2015 PingCAP, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// See the License for the specific language governing permissions and
// limitations under the License.
package variable
import (
"testing"
. "github.com/pingcap/check"
"github.com/pingcap/parser/mysql"
"github.com/pingcap/parser/terror"
)
func TestT(t *testing.T) {
CustomVerboseFlag = true
TestingT(t)
}
var _ = Suite(&testSysVarSuite{})
type testSysVarSuite struct {
}
func (*testSysVarSuite) TestSysVar(c *C) {
f := GetSysVar("autocommit")
c.Assert(f, NotNil)
f = GetSysVar("wrong-var-name")
c.Assert(f, IsNil)
f = GetSysVar("explicit_defaults_for_timestamp")
c.Assert(f, NotNil)
c.Assert(f.Value, Equals, "1")
f = GetSysVar("port")
c.Assert(f, NotNil)
c.Assert(f.Value, Equals, "4000")
f = GetSysVar("tidb_low_resolution_tso")
c.Assert(f.Value, Equals, "0")
f = GetSysVar("tidb_replica_read")
c.Assert(f.Value, Equals, "leader")
f = GetSysVar("tidb_enable_table_partition")
c.Assert(f.Value, Equals, "on")
}
func (*testSysVarSuite) TestTxnMode(c *C) {
seVar := NewSessionVars()
c.Assert(seVar, NotNil)
c.Assert(seVar.TxnMode, Equals, "")
err := seVar.setTxnMode("pessimistic")
c.Assert(err, IsNil)
err = seVar.setTxnMode("optimistic")
c.Assert(err, IsNil)
err = seVar.setTxnMode("")
c.Assert(err, IsNil)
err = seVar.setTxnMode("something else")
c.Assert(err, NotNil)
}
func (*testSysVarSuite) TestBoolToInt32(c *C) {
c.Assert(BoolToInt32(true), Equals, int32(1))
c.Assert(BoolToInt32(false), Equals, int32(0))
}
func (*testSysVarSuite) TestError(c *C) {
kvErrs := []*terror.Error{
ErrUnsupportedValueForVar,
ErrUnknownSystemVar,
ErrIncorrectScope,
ErrUnknownTimeZone,
ErrReadOnly,
ErrWrongValueForVar,
ErrWrongTypeForVar,
ErrTruncatedWrongValue,
ErrMaxPreparedStmtCountReached,
ErrUnsupportedIsolationLevel,
}
for _, err := range kvErrs {
c.Assert(terror.ToSQLError(err).Code != mysql.ErrUnknown, IsTrue)
}
}