Skip to content

Commit 4160eff

Browse files
committed
Fix the capability container test to measure memory in units of eight bytes
1 parent 1e5f9a6 commit 4160eff

1 file changed

Lines changed: 17 additions & 4 deletions

File tree

test/ndef_test.cpp

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -457,18 +457,31 @@ TEST(NDEF, Type5CapabilityContainer)
457457
EXPECT_EQ(cc.major_version(), NDEF_MAJOR_VERSION);
458458
EXPECT_EQ(cc.minor_version(), NDEF_MINOR_VERSION);
459459
EXPECT_EQ(cc.ndef_size(), 256);
460+
// MLEN counts in units of 8 bytes, so the field holds a value eight times smaller
461+
EXPECT_EQ(cc.block[2], 256 / 8);
460462

461-
// 8-byte CC
463+
// 8-byte CC. MLEN is in the same units whatever the size of the container
462464
type5::CapabilityContainer cc8{};
463465
cc8.block[0] = MAGIC_NO_CC8;
464466
cc8.major_version(NDEF_MAJOR_VERSION);
465467
cc8.minor_version(NDEF_MINOR_VERSION);
466-
cc8.block[6] = 0x10; // ndef_size high byte
467-
cc8.block[7] = 0x00; // ndef_size low byte (4096)
468+
cc8.ndef_size(32768);
468469

469470
EXPECT_TRUE(cc8.valid());
470471
EXPECT_EQ(cc8.size(), 8);
471-
EXPECT_EQ(cc8.ndef_size(), 0x1000);
472+
EXPECT_EQ(cc8.ndef_size(), 32768);
473+
EXPECT_EQ(cc8.block[6], 0x10);
474+
EXPECT_EQ(cc8.block[7], 0x00);
475+
476+
// The container an ST25DV64K carries, which measures 8184 bytes as 1023 units of 8
477+
type5::CapabilityContainer st25dv{};
478+
st25dv.block[0] = MAGIC_NO_CC8;
479+
st25dv.major_version(NDEF_MAJOR_VERSION);
480+
st25dv.minor_version(NDEF_MINOR_VERSION);
481+
st25dv.ndef_size(8184);
482+
EXPECT_EQ(st25dv.block[6], 0x03);
483+
EXPECT_EQ(st25dv.block[7], 0xFF);
484+
EXPECT_EQ(st25dv.ndef_size(), 8184);
472485

473486
// Additional feature
474487
cc.additional_feature(0x01);

0 commit comments

Comments
 (0)