size_test.go 984 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. package virtqueue
  2. import (
  3. "testing"
  4. "github.com/stretchr/testify/assert"
  5. )
  6. func TestCheckQueueSize(t *testing.T) {
  7. tests := []struct {
  8. name string
  9. queueSize int
  10. containsErr string
  11. }{
  12. {
  13. name: "negative",
  14. queueSize: -1,
  15. containsErr: "too small",
  16. },
  17. {
  18. name: "zero",
  19. queueSize: 0,
  20. containsErr: "too small",
  21. },
  22. {
  23. name: "not a power of 2",
  24. queueSize: 24,
  25. containsErr: "not a power of 2",
  26. },
  27. {
  28. name: "too large",
  29. queueSize: 65536,
  30. containsErr: "larger than the maximum",
  31. },
  32. {
  33. name: "valid 1",
  34. queueSize: 1,
  35. },
  36. {
  37. name: "valid 256",
  38. queueSize: 256,
  39. },
  40. {
  41. name: "valid 32768",
  42. queueSize: 32768,
  43. },
  44. }
  45. for _, tt := range tests {
  46. t.Run(tt.name, func(t *testing.T) {
  47. err := CheckQueueSize(tt.queueSize)
  48. if tt.containsErr != "" {
  49. assert.ErrorContains(t, err, tt.containsErr)
  50. } else {
  51. assert.NoError(t, err)
  52. }
  53. })
  54. }
  55. }