concurrency_test.go 526 B

1234567891011121314151617181920212223
  1. package util_test
  2. import (
  3. "strconv"
  4. "strings"
  5. "testing"
  6. "time"
  7. "github.com/sst/opencode/internal/util"
  8. )
  9. func TestWriteStringsPar(t *testing.T) {
  10. items := []int{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
  11. sb := strings.Builder{}
  12. util.WriteStringsPar(&sb, items, func(i int) string {
  13. // sleep for the inverse duration so that later items finish first
  14. time.Sleep(time.Duration(10-i) * time.Millisecond)
  15. return strconv.Itoa(i)
  16. })
  17. if sb.String() != "0123456789" {
  18. t.Fatalf("expected 0123456789, got %s", sb.String())
  19. }
  20. }