|
14 | 14 | package expression |
15 | 15 |
|
16 | 16 | import ( |
| 17 | + "sync/atomic" |
17 | 18 | "testing" |
18 | 19 | "time" |
19 | 20 |
|
@@ -176,23 +177,21 @@ func (s *testEvaluatorSuite) TestSleep(c *C) { |
176 | 177 | sub := time.Since(start) |
177 | 178 | c.Assert(sub.Nanoseconds(), GreaterEqual, int64(0.5*1e9)) |
178 | 179 |
|
179 | | - // quit when context canceled. |
180 | | - // TODO: recover it. |
181 | | - // d[0].SetFloat64(2) |
182 | | - // f, err = fc.getFunction(ctx, s.datumsToConstants(d)) |
183 | | - // c.Assert(err, IsNil) |
184 | | - // start = time.Now() |
185 | | - // go func() { |
186 | | - // time.Sleep(1 * time.Second) |
187 | | - // ctx.Cancel() |
188 | | - // }() |
189 | | - // ret, isNull, err = f.evalInt(chunk.Row{}) |
190 | | - // sub = time.Since(start) |
191 | | - // c.Assert(err, IsNil) |
192 | | - // c.Assert(isNull, IsFalse) |
193 | | - // c.Assert(ret, Equals, int64(1)) |
194 | | - // c.Assert(sub.Nanoseconds(), LessEqual, int64(2*1e9)) |
195 | | - // c.Assert(sub.Nanoseconds(), GreaterEqual, int64(1*1e9)) |
| 180 | + d[0].SetFloat64(3) |
| 181 | + f, err = fc.getFunction(ctx, s.datumsToConstants(d)) |
| 182 | + c.Assert(err, IsNil) |
| 183 | + start = time.Now() |
| 184 | + go func() { |
| 185 | + time.Sleep(1 * time.Second) |
| 186 | + atomic.CompareAndSwapUint32(&ctx.GetSessionVars().Killed, 0, 1) |
| 187 | + }() |
| 188 | + ret, isNull, err = f.evalInt(chunk.Row{}) |
| 189 | + sub = time.Since(start) |
| 190 | + c.Assert(err, IsNil) |
| 191 | + c.Assert(isNull, IsFalse) |
| 192 | + c.Assert(ret, Equals, int64(1)) |
| 193 | + c.Assert(sub.Nanoseconds(), LessEqual, int64(2*1e9)) |
| 194 | + c.Assert(sub.Nanoseconds(), GreaterEqual, int64(1*1e9)) |
196 | 195 | } |
197 | 196 |
|
198 | 197 | func (s *testEvaluatorSuite) TestBinopComparison(c *C) { |
|
0 commit comments