Skip to content

Commit

Permalink
Add test_attribute_packed
Browse files Browse the repository at this point in the history
  • Loading branch information
pdimov committed May 8, 2024
1 parent f65e6be commit c091c77
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 0 deletions.
1 change: 1 addition & 0 deletions test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ boost_test(TYPE run SOURCES test_uuid.cpp LINK_LIBRARIES Boost::container_hash C
boost_test(TYPE run SOURCES test_uuid_2.cpp)

boost_test(TYPE run SOURCES test_alignment.cpp)
boost_test(TYPE run SOURCES test_attribute_packed.cpp)

boost_test(TYPE run SOURCES test_comparison.cpp COMPILE_DEFINITIONS BOOST_UUID_REPORT_IMPLEMENTATION=1)
boost_test(TYPE run SOURCES test_comparison.cpp COMPILE_DEFINITIONS BOOST_UUID_NO_SIMD=1 BOOST_UUID_REPORT_IMPLEMENTATION=1 NAME test_comparison_no_simd)
Expand Down
1 change: 1 addition & 0 deletions test/Jamfile.v2
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ run test_uuid_2.cpp ;
# test type properties

run test_alignment.cpp ;
run test_attribute_packed.cpp ;

# test comparison

Expand Down
35 changes: 35 additions & 0 deletions test/test_attribute_packed.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
// Copyright 2024 Peter Dimov
// Distributed under the Boost Software License, Version 1.0.
// https://www.boost.org/LICENSE_1_0.txt

#include <boost/uuid/uuid.hpp>
#include <boost/core/lightweight_test.hpp>
#include <boost/config/pragma_message.hpp>
#include <cstddef>

#if !defined(__GNUC__)

BOOST_PRAGMA_MESSAGE( "Test skipped, __GNUC__ is not defined" )
int main() {}

#else

using namespace boost::uuids;

struct __attribute__((packed)) X
{
uuid a;
unsigned char b;
unsigned c;
unsigned char d;
};

int main()
{
BOOST_TEST_EQ( offsetof(X, c), 17 );
BOOST_TEST_EQ( sizeof(X), 22 );

return boost::report_errors();
}

#endif

0 comments on commit c091c77

Please sign in to comment.