MCPcopy Index your code
hub / github.com/coder/coder / TestProvisionerd

Function TestProvisionerd

provisionerd/provisionerd_test.go:50–1180  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

48}
49
50func TestProvisionerd(t *testing.T) {
51 t.Parallel()
52
53 noopUpdateJob := func(ctx context.Context, update *proto.UpdateJobRequest) (*proto.UpdateJobResponse, error) {
54 return &proto.UpdateJobResponse{}, nil
55 }
56
57 t.Run("InstantClose", func(t *testing.T) {
58 t.Parallel()
59 done := make(chan struct{})
60 t.Cleanup(func() {
61 close(done)
62 })
63 closer := createProvisionerd(t, func(ctx context.Context) (proto.DRPCProvisionerDaemonClient, error) {
64 return createProvisionerDaemonClient(t, done, provisionerDaemonTestServer{}), nil
65 }, provisionerd.LocalProvisioners{})
66 require.NoError(t, closer.Close())
67 })
68
69 t.Run("ConnectErrorClose", func(t *testing.T) {
70 t.Parallel()
71 done := make(chan struct{})
72 t.Cleanup(func() {
73 close(done)
74 })
75 completeChan := make(chan struct{})
76 var completed sync.Once
77 closer := createProvisionerd(t, func(ctx context.Context) (proto.DRPCProvisionerDaemonClient, error) {
78 completed.Do(func() {
79 defer close(completeChan)
80 })
81 return nil, xerrors.New("an error")
82 }, provisionerd.LocalProvisioners{})
83 require.Condition(t, closedWithin(completeChan, testutil.WaitShort))
84 require.NoError(t, closer.Close())
85 })
86
87 t.Run("CloseCancelsJob", func(t *testing.T) {
88 t.Parallel()
89 done := make(chan struct{})
90 t.Cleanup(func() {
91 close(done)
92 })
93 completeChan := make(chan struct{})
94 var completed sync.Once
95 var closer io.Closer
96 var closerMutex sync.Mutex
97 closerMutex.Lock()
98 closer = createProvisionerd(t, func(ctx context.Context) (proto.DRPCProvisionerDaemonClient, error) {
99 return createProvisionerDaemonClient(t, done, provisionerDaemonTestServer{
100 acquireJobWithCancel: func(stream proto.DRPCProvisionerDaemon_AcquireJobWithCancelStream) error {
101 err := stream.Send(&proto.AcquiredJob{
102 JobId: "test",
103 Provisioner: "someprovisioner",
104 TemplateSourceArchive: testutil.CreateTar(t, map[string]string{
105 "test.txt": "content",
106 }),
107 Type: &proto.AcquiredJob_TemplateImport_{

Callers

nothing calls this directly

Calls 15

CreateTarFunction · 0.92
ContextFunction · 0.92
createProvisionerdFunction · 0.85
closedWithinFunction · 0.85
createProvisionerClientFunction · 0.85
newAcquireOneFunction · 0.85
extractInitFunction · 0.85
WorkDirectoryMethod · 0.80
LogMethod · 0.80
RunMethod · 0.65
CleanupMethod · 0.65

Tested by

no test coverage detected