示例#1
0
func waiter(c *gc.C, m dependency.Manifold, w worker.Worker) gate.Waiter {
	var waiter gate.Waiter
	err := m.Output(w, &waiter)
	c.Assert(err, jc.ErrorIsNil)
	c.Assert(waiter, gc.NotNil)
	return waiter
}
示例#2
0
func unlocker(c *gc.C, m dependency.Manifold, w worker.Worker) gate.Unlocker {
	var unlocker gate.Unlocker
	err := m.Output(w, &unlocker)
	c.Assert(err, jc.ErrorIsNil)
	c.Assert(unlocker, gc.NotNil)
	return unlocker
}
示例#3
0
func assertGate(c *gc.C, manifold dependency.Manifold, unlocker gate.Unlocker) {
	w, err := manifold.Start(nil)
	c.Assert(err, jc.ErrorIsNil)
	defer worker.Stop(w)

	var waiter gate.Waiter
	err = manifold.Output(w, &waiter)
	c.Assert(err, jc.ErrorIsNil)

	select {
	case <-waiter.Unlocked():
		c.Fatalf("expected gate to be locked")
	default:
	}

	unlocker.Unlock()

	select {
	case <-waiter.Unlocked():
	default:
		c.Fatalf("expected gate to be unlocked")
	}
}