MCPcopy Create free account
hub / github.com/CrowdStrike/csproto / TestBooleanFieldData

Function TestBooleanFieldData

lazyproto/decode_test.go:526–597  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

524}
525
526func TestBooleanFieldData(t *testing.T) {
527 var sampleMessage = []byte{
528 // field 1: varint boolean true
529 (1 << 3), 0x01,
530 // field 2: regular repeated boolean - true, true, false
531 (2 << 3), 0x01,
532 (2 << 3), 0x01,
533 (2 << 3), 0x00,
534 // field 3: packed repeated boolean - true, false, true
535 (3 << 3) | 2, 0x03, 0x01, 0x00, 0x01,
536 // field 4: fixed32 (invalid for bool value)
537 (4 << 3) | 5, 0x00, 0x01, 0x02, 0x03,
538 }
539 t.Parallel()
540 t.Run("single boolean", func(t *testing.T) {
541 t.Parallel()
542 def := NewDef(1)
543 res, err := Decode(sampleMessage, def)
544 defer func() { _ = res.Close() }()
545 assert.NoError(t, err)
546
547 fd, err := res.FieldData(1)
548 assert.NoError(t, err)
549
550 b, err := fd.BoolValue()
551 assert.NoError(t, err)
552 assert.True(t, b)
553 })
554 t.Run("repeated boolean", func(t *testing.T) {
555 t.Parallel()
556 def := NewDef(2)
557 res, err := Decode(sampleMessage, def)
558 defer func() { _ = res.Close() }()
559 assert.NoError(t, err)
560
561 fd, err := res.FieldData(2)
562 assert.NoError(t, err)
563
564 bs, err := fd.BoolValues()
565 assert.NoError(t, err)
566 assert.Len(t, bs, 3)
567 for i, expected := range []bool{true, true, false} {
568 assert.Equal(t, expected, bs[i], "mismatched values at index %d", i)
569 }
570 })
571 t.Run("tag not present", func(t *testing.T) {
572 t.Parallel()
573 def := NewDef(1)
574 res, err := Decode(sampleMessage, def)
575 defer func() { _ = res.Close() }()
576 assert.NoError(t, err)
577
578 fd, err := res.FieldData(2)
579 assert.ErrorIs(t, err, ErrTagNotFound)
580 assert.Nil(t, fd)
581 })
582 t.Run("incorrect wire type", func(t *testing.T) {
583 t.Parallel()

Callers

nothing calls this directly

Calls 6

NewDefFunction · 0.85
DecodeFunction · 0.85
CloseMethod · 0.80
FieldDataMethod · 0.80
BoolValueMethod · 0.45
BoolValuesMethod · 0.45

Tested by

no test coverage detected