| 24 | #include <iterator> |
| 25 | #include <thread> |
| 26 | |
| 27 | #include "../fbclock.h" |
| 28 | |
| 29 | TEST(fbclockTest, test_write_read) { |
| 30 | int err; |
| 31 | char* test_shm = std::tmpnam(nullptr); |
| 32 | |
| 33 | // open file, write data into it |
| 34 | FILE* f = fopen(test_shm, "wb+"); |
| 35 | int sfd_rw = fileno(f); |
| 36 | ASSERT_NE(sfd_rw, -1); |
| 37 | |
| 38 | err = ftruncate(sfd_rw, FBCLOCK_SHMDATA_SIZE); |
| 39 | ASSERT_EQ(err, 0); |
| 40 | |
| 41 | fbclock_clockdata data = { |
| 42 | .ingress_time_ns = 1, .error_bound_ns = 2, .holdover_multiplier_ns = 3}; |
| 43 | err = fbclock_clockdata_store_data(sfd_rw, &data); |
| 44 | ASSERT_EQ(err, 0); |
| 45 | |
| 46 | fclose(f); |
| 47 | |
| 48 | // read data from the file |
| 49 | f = fopen(test_shm, "r"); |
| 50 | int sfd_ro = fileno(f); |
| 51 | ASSERT_NE(sfd_ro, -1); |
| 52 | |
| 53 | fbclock_shmdata* shmp = (fbclock_shmdata*)mmap( |
| 54 | nullptr, FBCLOCK_SHMDATA_SIZE, PROT_READ, MAP_SHARED, sfd_ro, 0); |
| 55 | ASSERT_NE(shmp, MAP_FAILED); |
| 56 | |
| 57 | fbclock_clockdata read_data; |
| 58 | |
| 59 | err = fbclock_clockdata_load_data(shmp, &read_data); |
| 60 | ASSERT_EQ(err, 0); |
| 61 | |
| 62 | munmap(shmp, FBCLOCK_SHMDATA_SIZE); |
| 63 | fclose(f); |
| 64 | |
| 65 | EXPECT_EQ(data.ingress_time_ns, read_data.ingress_time_ns); |
| 66 | EXPECT_EQ(data.error_bound_ns, read_data.error_bound_ns); |
| 67 | EXPECT_EQ(data.holdover_multiplier_ns, read_data.holdover_multiplier_ns); |
| 68 | |
| 69 | remove(test_shm); |
| 70 | } |
nothing calls this directly
no test coverage detected
searching dependent graphs…