The Go Programming Language

Source file src/pkg/testing/script/script_test.go

     1	// Copyright 2009 The Go Authors. All rights reserved.
     2	// Use of this source code is governed by a BSD-style
     3	// license that can be found in the LICENSE file.
     4	
     5	package script
     6	
     7	import (
     8		"testing"
     9	)
    10	
    11	func TestNoop(t *testing.T) {
    12		err := Perform(0, nil)
    13		if err != nil {
    14			t.Errorf("Got error: %s", err)
    15		}
    16	}
    17	
    18	func TestSimple(t *testing.T) {
    19		c := make(chan int)
    20		defer close(c)
    21	
    22		a := NewEvent("send", nil, Send{c, 1})
    23		b := NewEvent("recv", []*Event{a}, Recv{c, 1})
    24	
    25		err := Perform(0, []*Event{a, b})
    26		if err != nil {
    27			t.Errorf("Got error: %s", err)
    28		}
    29	}
    30	
    31	func TestFail(t *testing.T) {
    32		c := make(chan int)
    33		defer close(c)
    34	
    35		a := NewEvent("send", nil, Send{c, 2})
    36		b := NewEvent("recv", []*Event{a}, Recv{c, 1})
    37	
    38		err := Perform(0, []*Event{a, b})
    39		if err == nil {
    40			t.Errorf("Failed to get expected error")
    41		} else if _, ok := err.(ReceivedUnexpected); !ok {
    42			t.Errorf("Error returned was of the wrong type: %s", err)
    43		}
    44	}
    45	
    46	func TestClose(t *testing.T) {
    47		c := make(chan int)
    48	
    49		a := NewEvent("close", nil, Close{c})
    50		b := NewEvent("closed", []*Event{a}, Closed{c})
    51	
    52		err := Perform(0, []*Event{a, b})
    53		if err != nil {
    54			t.Errorf("Got error: %s", err)
    55		}
    56	}
    57	
    58	func matchOne(v interface{}) bool {
    59		if i, ok := v.(int); ok && i == 1 {
    60			return true
    61		}
    62		return false
    63	}
    64	
    65	func TestRecvMatch(t *testing.T) {
    66		c := make(chan int)
    67	
    68		a := NewEvent("send", nil, Send{c, 1})
    69		b := NewEvent("recv", []*Event{a}, RecvMatch{c, matchOne})
    70	
    71		err := Perform(0, []*Event{a, b})
    72		if err != nil {
    73			t.Errorf("Got error: %s", err)
    74		}
    75	}

release.r60.3. Except as noted, this content is licensed under a Creative Commons Attribution 3.0 License.