util_test.go 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. //go:build linux
  2. // +build linux
  3. package daemon
  4. import (
  5. "context"
  6. "syscall"
  7. "time"
  8. "github.com/containerd/containerd"
  9. libcontainerdtypes "github.com/docker/docker/libcontainerd/types"
  10. specs "github.com/opencontainers/runtime-spec/specs-go"
  11. )
  12. type mockProcess struct {
  13. }
  14. func (m *mockProcess) Delete(_ context.Context) (uint32, time.Time, error) {
  15. return 0, time.Time{}, nil
  16. }
  17. // Mock containerd client implementation, for unit tests.
  18. type MockContainerdClient struct {
  19. }
  20. func (c *MockContainerdClient) Version(ctx context.Context) (containerd.Version, error) {
  21. return containerd.Version{}, nil
  22. }
  23. func (c *MockContainerdClient) Restore(ctx context.Context, containerID string, attachStdio libcontainerdtypes.StdioCallback) (alive bool, pid int, p libcontainerdtypes.Process, err error) {
  24. return false, 0, &mockProcess{}, nil
  25. }
  26. func (c *MockContainerdClient) Create(ctx context.Context, containerID string, spec *specs.Spec, shim string, runtimeOptions interface{}, opts ...containerd.NewContainerOpts) error {
  27. return nil
  28. }
  29. func (c *MockContainerdClient) Start(ctx context.Context, containerID, checkpointDir string, withStdin bool, attachStdio libcontainerdtypes.StdioCallback) (pid int, err error) {
  30. return 0, nil
  31. }
  32. func (c *MockContainerdClient) SignalProcess(ctx context.Context, containerID, processID string, signal syscall.Signal) error {
  33. return nil
  34. }
  35. func (c *MockContainerdClient) Exec(ctx context.Context, containerID, processID string, spec *specs.Process, withStdin bool, attachStdio libcontainerdtypes.StdioCallback) (int, error) {
  36. return 0, nil
  37. }
  38. func (c *MockContainerdClient) ResizeTerminal(ctx context.Context, containerID, processID string, width, height int) error {
  39. return nil
  40. }
  41. func (c *MockContainerdClient) CloseStdin(ctx context.Context, containerID, processID string) error {
  42. return nil
  43. }
  44. func (c *MockContainerdClient) Pause(ctx context.Context, containerID string) error { return nil }
  45. func (c *MockContainerdClient) Resume(ctx context.Context, containerID string) error { return nil }
  46. func (c *MockContainerdClient) Stats(ctx context.Context, containerID string) (*libcontainerdtypes.Stats, error) {
  47. return nil, nil
  48. }
  49. func (c *MockContainerdClient) ListPids(ctx context.Context, containerID string) ([]uint32, error) {
  50. return nil, nil
  51. }
  52. func (c *MockContainerdClient) Summary(ctx context.Context, containerID string) ([]libcontainerdtypes.Summary, error) {
  53. return nil, nil
  54. }
  55. func (c *MockContainerdClient) DeleteTask(ctx context.Context, containerID string) (uint32, time.Time, error) {
  56. return 0, time.Time{}, nil
  57. }
  58. func (c *MockContainerdClient) Delete(ctx context.Context, containerID string) error { return nil }
  59. func (c *MockContainerdClient) Status(ctx context.Context, containerID string) (containerd.ProcessStatus, error) {
  60. return "null", nil
  61. }
  62. func (c *MockContainerdClient) UpdateResources(ctx context.Context, containerID string, resources *libcontainerdtypes.Resources) error {
  63. return nil
  64. }
  65. func (c *MockContainerdClient) CreateCheckpoint(ctx context.Context, containerID, checkpointDir string, exit bool) error {
  66. return nil
  67. }