Merge pull request #46157 from vvoland/pkg-plugins-racy
This commit is contained in:
commit
b1c112d35e
1 changed files with 14 additions and 3 deletions
|
@ -29,7 +29,9 @@ func TestPluginAddHandler(t *testing.T) {
|
||||||
// make a plugin which is pre-activated
|
// make a plugin which is pre-activated
|
||||||
p := &Plugin{activateWait: sync.NewCond(&sync.Mutex{})}
|
p := &Plugin{activateWait: sync.NewCond(&sync.Mutex{})}
|
||||||
p.Manifest = &Manifest{Implements: []string{"bananas"}}
|
p.Manifest = &Manifest{Implements: []string{"bananas"}}
|
||||||
|
storage.Lock()
|
||||||
storage.plugins["qwerty"] = p
|
storage.plugins["qwerty"] = p
|
||||||
|
storage.Unlock()
|
||||||
|
|
||||||
testActive(t, p)
|
testActive(t, p)
|
||||||
Handle("bananas", func(_ string, _ *Client) {})
|
Handle("bananas", func(_ string, _ *Client) {})
|
||||||
|
@ -37,7 +39,6 @@ func TestPluginAddHandler(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestPluginWaitBadPlugin(t *testing.T) {
|
func TestPluginWaitBadPlugin(t *testing.T) {
|
||||||
t.Parallel()
|
|
||||||
p := &Plugin{activateWait: sync.NewCond(&sync.Mutex{})}
|
p := &Plugin{activateWait: sync.NewCond(&sync.Mutex{})}
|
||||||
p.activateErr = errors.New("some junk happened")
|
p.activateErr = errors.New("some junk happened")
|
||||||
testActive(t, p)
|
testActive(t, p)
|
||||||
|
@ -59,10 +60,14 @@ func testActive(t *testing.T, p *Plugin) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestGet(t *testing.T) {
|
func TestGet(t *testing.T) {
|
||||||
t.Parallel()
|
// TODO: t.Parallel()
|
||||||
|
// TestPluginWithNoManifest also registers fruitPlugin
|
||||||
|
|
||||||
p := &Plugin{name: fruitPlugin, activateWait: sync.NewCond(&sync.Mutex{})}
|
p := &Plugin{name: fruitPlugin, activateWait: sync.NewCond(&sync.Mutex{})}
|
||||||
p.Manifest = &Manifest{Implements: []string{fruitImplements}}
|
p.Manifest = &Manifest{Implements: []string{fruitImplements}}
|
||||||
|
storage.Lock()
|
||||||
storage.plugins[fruitPlugin] = p
|
storage.plugins[fruitPlugin] = p
|
||||||
|
storage.Unlock()
|
||||||
|
|
||||||
t.Run("success", func(t *testing.T) {
|
t.Run("success", func(t *testing.T) {
|
||||||
plugin, err := Get(fruitPlugin, fruitImplements)
|
plugin, err := Get(fruitPlugin, fruitImplements)
|
||||||
|
@ -94,7 +99,8 @@ func TestGet(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestPluginWithNoManifest(t *testing.T) {
|
func TestPluginWithNoManifest(t *testing.T) {
|
||||||
t.Parallel()
|
// TODO: t.Parallel()
|
||||||
|
// TestGet also registers fruitPlugin
|
||||||
mux, addr := setupRemotePluginServer(t)
|
mux, addr := setupRemotePluginServer(t)
|
||||||
|
|
||||||
m := Manifest{[]string{fruitImplements}}
|
m := Manifest{[]string{fruitImplements}}
|
||||||
|
@ -120,7 +126,9 @@ func TestPluginWithNoManifest(t *testing.T) {
|
||||||
Addr: addr,
|
Addr: addr,
|
||||||
TLSConfig: &tlsconfig.Options{InsecureSkipVerify: true},
|
TLSConfig: &tlsconfig.Options{InsecureSkipVerify: true},
|
||||||
}
|
}
|
||||||
|
storage.Lock()
|
||||||
storage.plugins[fruitPlugin] = p
|
storage.plugins[fruitPlugin] = p
|
||||||
|
storage.Unlock()
|
||||||
|
|
||||||
plugin, err := Get(fruitPlugin, fruitImplements)
|
plugin, err := Get(fruitPlugin, fruitImplements)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -133,6 +141,7 @@ func TestPluginWithNoManifest(t *testing.T) {
|
||||||
|
|
||||||
func TestGetAll(t *testing.T) {
|
func TestGetAll(t *testing.T) {
|
||||||
t.Parallel()
|
t.Parallel()
|
||||||
|
|
||||||
tmpdir := t.TempDir()
|
tmpdir := t.TempDir()
|
||||||
r := LocalRegistry{
|
r := LocalRegistry{
|
||||||
socketsPath: tmpdir,
|
socketsPath: tmpdir,
|
||||||
|
@ -154,7 +163,9 @@ func TestGetAll(t *testing.T) {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
plugin.Manifest = &Manifest{Implements: []string{"apple"}}
|
plugin.Manifest = &Manifest{Implements: []string{"apple"}}
|
||||||
|
storage.Lock()
|
||||||
storage.plugins["example"] = plugin
|
storage.plugins["example"] = plugin
|
||||||
|
storage.Unlock()
|
||||||
|
|
||||||
fetchedPlugins, err := r.GetAll("apple")
|
fetchedPlugins, err := r.GetAll("apple")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
Loading…
Reference in a new issue