// Copyright 2019 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. package hooks import ( "fmt" "io/ioutil" "os" "testing" "unicode/utf8" "golang.org/x/tools/internal/lsp/diff/difftest" ) func TestDiff(t *testing.T) { difftest.DiffTest(t, ComputeEdits) } func TestRepl(t *testing.T) { t.Skip("just for checking repl by looking at it") repl := initrepl(800) t.Errorf("%q", string(repl)) t.Errorf("%d", len(repl)) } func TestDisaster(t *testing.T) { a := "This is a string,(\u0995) just for basic functionality" b := "Ths is another string, (\u0996) to see if disaster will store stuff correctly" fname := disaster(a, b) buf, err := ioutil.ReadFile(fname) if err != nil { t.Errorf("error %v reading %s", err, fname) } var x, y string n, err := fmt.Sscanf(string(buf), "%s\n%s\n", &x, &y) if n != 2 { t.Errorf("got %d, expected 2", n) t.Logf("read %q", string(buf)) } if a == x || b == y { t.Error("failed to encrypt") } err = os.Remove(fname) if err != nil { t.Errorf("%v removing %s", err, fname) } alen, blen := utf8.RuneCount([]byte(a)), utf8.RuneCount([]byte(b)) xlen, ylen := utf8.RuneCount([]byte(x)), utf8.RuneCount([]byte(y)) if alen != xlen { t.Errorf("a; got %d, expected %d", xlen, alen) } if blen != ylen { t.Errorf("b: got %d expected %d", ylen, blen) } }