Changeset 5 in code for trunk/zs_test.go


Ignore:
Timestamp:
Dec 5, 2014, 6:09:03 PM (11 years ago)
Author:
zaitsev.serge
Message:

render uses strings, not bytes; added helpers for env and run

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/zs_test.go

    r3 r5  
    11package main
    22
    3 import "testing"
     3import (
     4        "bytes"
     5        "fmt"
     6        "log"
     7        "os"
     8        "strings"
     9        "testing"
     10)
    411
    512func TestSplit2(t *testing.T) {
     
    7683                t.Error()
    7784        }
     85        // Test error case
     86        if s, err := render("a {{greet text ", vars, eval); err == nil || len(s) != 0 {
     87                t.Error()
     88        }
    7889}
     90
     91func TestEnv(t *testing.T) {
     92        e := env(map[string]string{"foo": "bar", "baz": "hello world"})
     93        mustHave := []string{"ZS=" + os.Args[0], "ZS_FOO=bar", "ZS_BAZ=hello world", "PATH="}
     94        for _, s := range mustHave {
     95                found := false
     96                for _, v := range e {
     97                        if strings.HasPrefix(v, s) {
     98                                found = true
     99                                break
     100                        }
     101                }
     102                if !found {
     103                        t.Error("Missing", s)
     104                }
     105        }
     106}
     107
     108func TestRun(t *testing.T) {
     109        out := bytes.NewBuffer(nil)
     110        err := run("some_unbelievable_command_name", []string{}, map[string]string{}, out)
     111        if err == nil {
     112                t.Error()
     113        }
     114
     115        out = bytes.NewBuffer(nil)
     116        err = run(os.Args[0], []string{"-test.run=TestHelperProcess"},
     117                map[string]string{"helper": "1", "out": "foo", "err": "bar"}, out)
     118        if err != nil {
     119                t.Error(err)
     120        }
     121        if out.String() != "foo\n" {
     122                t.Error(out.String())
     123        }
     124}
     125
     126func TestHelperProcess(*testing.T) {
     127        if os.Getenv("ZS_HELPER") != "1" {
     128                return
     129        }
     130        defer os.Exit(0)                 // TODO check exit code
     131        log.Println(os.Getenv("ZS_ERR")) // stderr
     132        fmt.Println(os.Getenv("ZS_OUT")) // stdout
     133}
Note: See TracChangeset for help on using the changeset viewer.