file_string_table_test.go 734 B

12345678910111213141516171819202122232425262728293031323334353637
  1. package opencost
  2. import (
  3. "testing"
  4. util "github.com/opencost/opencost/core/pkg/util"
  5. )
  6. func TestFileStringTableFromBuffer_RoundTrip(t *testing.T) {
  7. bw := util.NewBuffer()
  8. bw.WriteString("hello")
  9. bw.WriteString("")
  10. bw.WriteString("world")
  11. br := util.NewBufferFromBytes(bw.Bytes())
  12. ft, err := NewFileStringTableFromBuffer(br, 3)
  13. if err != nil {
  14. t.Fatal(err)
  15. }
  16. defer ft.Close()
  17. if ft.Len() != 3 {
  18. t.Fatalf("len: %d", ft.Len())
  19. }
  20. s0, err := ft.StringAt(0)
  21. if err != nil || s0 != "hello" {
  22. t.Fatalf("0: %q %v", s0, err)
  23. }
  24. s1, err := ft.StringAt(1)
  25. if err != nil || s1 != "" {
  26. t.Fatalf("1: %q %v", s1, err)
  27. }
  28. s2, err := ft.StringAt(2)
  29. if err != nil || s2 != "world" {
  30. t.Fatalf("2: %q %v", s2, err)
  31. }
  32. }