Skip to content

Commit

Permalink
Add test_pragma_pack
Browse files Browse the repository at this point in the history
  • Loading branch information
pdimov committed May 14, 2024
1 parent b2df302 commit 6af3cb8
Show file tree
Hide file tree
Showing 3 changed files with 51 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 @@ -19,6 +19,7 @@ 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_pragma_pack.cpp)
boost_test(TYPE run SOURCES test_data.cpp)

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

run test_alignment.cpp ;
run test_attribute_packed.cpp ;
run test_pragma_pack.cpp ;
run test_data.cpp ;

# test comparison
Expand Down
49 changes: 49 additions & 0 deletions test/test_pragma_pack.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
// 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__) && !defined(_MSC_VER)

BOOST_PRAGMA_MESSAGE( "Test skipped, __GNUC__ and _MSC_VER are not defined" )
int main() {}

#else

using namespace boost::uuids;

#pragma pack( push, 1 )

struct X1
{
unsigned char a;
uuid b;
unsigned char c;
};

struct X2
{
uuid a;
unsigned char b;
unsigned c;
unsigned char d;
};

#pragma pack( pop )

int main()
{
BOOST_TEST_EQ( offsetof(X1, b), 1 );
BOOST_TEST_EQ( sizeof(X1), 18 );

BOOST_TEST_EQ( offsetof(X2, c), 17 );
BOOST_TEST_EQ( sizeof(X2), 22 );

return boost::report_errors();
}

#endif

0 comments on commit 6af3cb8

Please sign in to comment.