github.com/insionng/yougam@v0.0.0-20170714101924-2bc18d833463/libraries/qiuyesuifeng/goyacc/all_test.go (about)

     1  // Copyright 2014 The goyacc 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 main
     6  
     7  import (
     8  	"flag"
     9  	"fmt"
    10  	"os"
    11  	"path"
    12  	"runtime"
    13  	"strings"
    14  	"testing"
    15  )
    16  
    17  func caller(s string, va ...interface{}) {
    18  	_, fn, fl, _ := runtime.Caller(2)
    19  	fmt.Printf("caller: %s:%d: ", path.Base(fn), fl)
    20  	fmt.Printf(s, va...)
    21  	fmt.Println()
    22  	_, fn, fl, _ = runtime.Caller(1)
    23  	fmt.Printf("\tcallee: %s:%d: ", path.Base(fn), fl)
    24  	fmt.Println()
    25  }
    26  
    27  func dbg(s string, va ...interface{}) {
    28  	if s == "" {
    29  		s = strings.Repeat("%v ", len(va))
    30  	}
    31  	_, fn, fl, _ := runtime.Caller(1)
    32  	fmt.Printf("dbg %s:%d: ", path.Base(fn), fl)
    33  	fmt.Printf(s, va...)
    34  	fmt.Println()
    35  }
    36  
    37  func TODO(...interface{}) string {
    38  	_, fn, fl, _ := runtime.Caller(1)
    39  	return fmt.Sprintf("TODO: %s:%d:\n", path.Base(fn), fl)
    40  }
    41  
    42  func use(...interface{}) {}
    43  
    44  // ============================================================================
    45  
    46  var (
    47  	oSrc    = flag.String("src", "", "test src")
    48  	oDev    = flag.Bool("dev", false, "enable dev test(s)")
    49  	oDevOut = flag.String("devout", os.DevNull, "dev test -o replacement")
    50  )
    51  
    52  func TestDev(t *testing.T) {
    53  	if !*oDev {
    54  		t.Log("use -dev to enable")
    55  		return
    56  	}
    57  
    58  	*oOut = *oDevOut
    59  	if s := *oSrc; s != "" {
    60  		err := main1(s)
    61  		if err != nil {
    62  			t.Fatal(err)
    63  		}
    64  	}
    65  }