| 165 | } |
| 166 | |
| 167 | func TestEnvCheckExtendRace(t *testing.T) { |
| 168 | t.Parallel() |
| 169 | for i := 0; i < 500; i++ { |
| 170 | wg := &sync.WaitGroup{} |
| 171 | wg.Add(2) |
| 172 | env, err := NewCustomEnv(StdLib()) |
| 173 | if err != nil { |
| 174 | t.Fatalf("NewCustomEnv() failed: %v", err) |
| 175 | } |
| 176 | t.Run(fmt.Sprintf("Compile[%d]", i), func(t *testing.T) { |
| 177 | go func() { |
| 178 | defer wg.Done() |
| 179 | _, _ = env.Compile(`1 + 1 * 20 < 400`) |
| 180 | }() |
| 181 | }) |
| 182 | t.Run(fmt.Sprintf("Extend[%d]", i), func(t *testing.T) { |
| 183 | go func() { |
| 184 | defer wg.Done() |
| 185 | _, _ = env.Extend(Variable("bar", BoolType)) |
| 186 | }() |
| 187 | }) |
| 188 | wg.Wait() |
| 189 | } |
| 190 | } |
| 191 | |
| 192 | func TestEnvPartialVarsError(t *testing.T) { |
| 193 | env := testEnv(t) |