#include "wasm.h"
#include "gtest/gtest.h"

using namespace wasm;

// Verify that Expression and its derived classes maintain their expected sizes
// on linux64 (specifically avoiding regressions in tail-padding reuse and field
// ordering).
TEST(SizesTest, ExpressionSizes) {
#if !defined(__linux__) || !defined(__x86_64__)
  GTEST_SKIP() << "This test's numbers are for linux64";
#else
  EXPECT_EQ(sizeof(Expression), 16u);
  EXPECT_EQ(sizeof(Block), 56u);
  EXPECT_EQ(sizeof(If), 40u);
  EXPECT_EQ(sizeof(Loop), 32u);
  EXPECT_EQ(sizeof(Break), 40u);
  EXPECT_EQ(sizeof(Switch), 72u);
  EXPECT_EQ(sizeof(Call), 56u);
  EXPECT_EQ(sizeof(CallIndirect), 72u);
  EXPECT_EQ(sizeof(LocalGet), 16u);
  EXPECT_EQ(sizeof(LocalSet), 24u);
  EXPECT_EQ(sizeof(GlobalGet), 24u);
  EXPECT_EQ(sizeof(GlobalSet), 32u);
  EXPECT_EQ(sizeof(Load), 48u);
  EXPECT_EQ(sizeof(Store), 64u);
  EXPECT_EQ(sizeof(Const), 40u);
  EXPECT_EQ(sizeof(Unary), 24u);
  EXPECT_EQ(sizeof(Binary), 32u);
  EXPECT_EQ(sizeof(Select), 40u);
  EXPECT_EQ(sizeof(Drop), 24u);
  EXPECT_EQ(sizeof(Return), 24u);
  EXPECT_EQ(sizeof(MemorySize), 24u);
  EXPECT_EQ(sizeof(MemoryGrow), 32u);
  EXPECT_EQ(sizeof(Nop), 16u);
  EXPECT_EQ(sizeof(Unreachable), 16u);
  EXPECT_EQ(sizeof(AtomicRMW), 56u);
  EXPECT_EQ(sizeof(AtomicCmpxchg), 56u);
  EXPECT_EQ(sizeof(AtomicWait), 64u);
  EXPECT_EQ(sizeof(AtomicNotify), 48u);
  EXPECT_EQ(sizeof(AtomicFence), 16u);
  EXPECT_EQ(sizeof(Pause), 16u);
  EXPECT_EQ(sizeof(SIMDExtract), 24u);
  EXPECT_EQ(sizeof(SIMDReplace), 32u);
  EXPECT_EQ(sizeof(SIMDShuffle), 48u);
  EXPECT_EQ(sizeof(SIMDTernary), 40u);
  EXPECT_EQ(sizeof(SIMDShift), 32u);
  EXPECT_EQ(sizeof(SIMDLoad), 48u);
  EXPECT_EQ(sizeof(SIMDLoadStoreLane), 64u);
  EXPECT_EQ(sizeof(MemoryInit), 56u);
  EXPECT_EQ(sizeof(DataDrop), 24u);
  EXPECT_EQ(sizeof(MemoryCopy), 56u);
  EXPECT_EQ(sizeof(MemoryFill), 48u);
  EXPECT_EQ(sizeof(Pop), 16u);
  EXPECT_EQ(sizeof(RefNull), 16u);
  EXPECT_EQ(sizeof(RefIsNull), 24u);
  EXPECT_EQ(sizeof(RefFunc), 24u);
  EXPECT_EQ(sizeof(RefEq), 32u);
  EXPECT_EQ(sizeof(TableGet), 32u);
  EXPECT_EQ(sizeof(TableSet), 40u);
  EXPECT_EQ(sizeof(TableSize), 24u);
  EXPECT_EQ(sizeof(TableGrow), 40u);
  EXPECT_EQ(sizeof(TableFill), 48u);
  EXPECT_EQ(sizeof(TableCopy), 56u);
  EXPECT_EQ(sizeof(TableInit), 56u);
  EXPECT_EQ(sizeof(ElemDrop), 24u);
  EXPECT_EQ(sizeof(Try), 104u);
  EXPECT_EQ(sizeof(TryTable), 152u);
  EXPECT_EQ(sizeof(Throw), 56u);
  EXPECT_EQ(sizeof(Rethrow), 24u);
  EXPECT_EQ(sizeof(ThrowRef), 24u);
  EXPECT_EQ(sizeof(TupleMake), 48u);
  EXPECT_EQ(sizeof(TupleExtract), 24u);
  EXPECT_EQ(sizeof(RefI31), 24u);
  EXPECT_EQ(sizeof(I31Get), 24u);
  EXPECT_EQ(sizeof(CallRef), 56u);
  EXPECT_EQ(sizeof(RefTest), 32u);
  EXPECT_EQ(sizeof(RefCast), 32u);
  EXPECT_EQ(sizeof(RefGetDesc), 24u);
  EXPECT_EQ(sizeof(BrOn), 48u);
  EXPECT_EQ(sizeof(StructNew), 56u);
  EXPECT_EQ(sizeof(StructGet), 24u);
  EXPECT_EQ(sizeof(StructSet), 32u);
  EXPECT_EQ(sizeof(StructRMW), 40u);
  EXPECT_EQ(sizeof(StructCmpxchg), 40u);
  EXPECT_EQ(sizeof(ArrayNew), 32u);
  EXPECT_EQ(sizeof(ArrayNewData), 40u);
  EXPECT_EQ(sizeof(ArrayNewElem), 40u);
  EXPECT_EQ(sizeof(ArrayNewFixed), 48u);
  EXPECT_EQ(sizeof(ArrayGet), 32u);
  EXPECT_EQ(sizeof(ArraySet), 40u);
  EXPECT_EQ(sizeof(ArrayLoad), 48u);
  EXPECT_EQ(sizeof(ArrayStore), 56u);
  EXPECT_EQ(sizeof(ArrayLen), 24u);
  EXPECT_EQ(sizeof(ArrayCopy), 56u);
  EXPECT_EQ(sizeof(ArrayFill), 48u);
  EXPECT_EQ(sizeof(ArrayInitData), 56u);
  EXPECT_EQ(sizeof(ArrayInitElem), 56u);
  EXPECT_EQ(sizeof(ArrayRMW), 40u);
  EXPECT_EQ(sizeof(ArrayCmpxchg), 48u);
  EXPECT_EQ(sizeof(RefAs), 24u);
  EXPECT_EQ(sizeof(StringNew), 40u);
  EXPECT_EQ(sizeof(StringConst), 24u);
  EXPECT_EQ(sizeof(StringMeasure), 24u);
  EXPECT_EQ(sizeof(StringEncode), 40u);
  EXPECT_EQ(sizeof(StringConcat), 32u);
  EXPECT_EQ(sizeof(StringEq), 32u);
  EXPECT_EQ(sizeof(StringTest), 24u);
  EXPECT_EQ(sizeof(StringWTF16Get), 32u);
  EXPECT_EQ(sizeof(StringSliceWTF), 40u);
  EXPECT_EQ(sizeof(ContNew), 24u);
  EXPECT_EQ(sizeof(ContBind), 56u);
  EXPECT_EQ(sizeof(Suspend), 56u);
  EXPECT_EQ(sizeof(Resume), 152u);
  EXPECT_EQ(sizeof(ResumeThrow), 160u);
  EXPECT_EQ(sizeof(StackSwitch), 64u);
  EXPECT_EQ(sizeof(StructWait), 56u);
  EXPECT_EQ(sizeof(WideIntAddSub), 48u);
  EXPECT_EQ(sizeof(WideIntMul), 32u);
  EXPECT_EQ(sizeof(WaitqueueNew), 16u);
  EXPECT_EQ(sizeof(WaitqueueNotify), 32u);
  EXPECT_EQ(sizeof(Publish), 24u);
#endif
}
