コード例 #1
0
ファイル: minstr.cpp プロジェクト: swtaarrs/hhvm
TEST(MInstrEffects, PromoteNull) {
  MInstrEffects elem(SetElem, TLvalToNull);
  EXPECT_TEQ(TLvalToArr, elem.baseType);
  EXPECT_TRUE(elem.baseTypeChanged);
  EXPECT_TRUE(elem.baseValChanged);

  MInstrEffects prop(SetProp, TLvalToUninit);
  EXPECT_TEQ(TLvalToObj, prop.baseType);
  EXPECT_TRUE(prop.baseTypeChanged);
  EXPECT_TRUE(prop.baseValChanged);
}
コード例 #2
0
ファイル: vector.cpp プロジェクト: MarkTseng/hiphop-php
TEST(VectorEffects, PromoteNull) {
  VectorEffects elem(SetElem, Type::PtrToNull, Type::Int, Type::Str);
  EXPECT_TEQ(Type::PtrToArr, elem.baseType);
  EXPECT_TRUE(elem.baseTypeChanged);
  EXPECT_TRUE(elem.baseValChanged);

  VectorEffects prop(SetProp, Type::PtrToUninit, Type::StaticStr, Type::Str);
  EXPECT_TEQ(Type::PtrToObj, prop.baseType);
  EXPECT_TRUE(prop.baseTypeChanged);
  EXPECT_TRUE(prop.baseValChanged);
}
コード例 #3
0
ファイル: vector.cpp プロジェクト: MarkTseng/hiphop-php
TEST(VectorEffects, Basic) {
  VectorEffects elem(SetElem, Type::PtrToArr, Type::Int, Type::Str);
  EXPECT_TEQ(Type::PtrToArr, elem.baseType);
  EXPECT_FALSE(elem.baseTypeChanged);
  EXPECT_TRUE(elem.baseValChanged);

  VectorEffects prop(SetProp, Type::Obj, Type::StaticStr, Type::Str);
  EXPECT_TEQ(Type::Obj, prop.baseType);
  EXPECT_FALSE(prop.baseTypeChanged);
  EXPECT_FALSE(prop.baseValChanged);
}
コード例 #4
0
ファイル: minstr.cpp プロジェクト: swtaarrs/hhvm
TEST(MInstrEffects, Basic) {
  MInstrEffects elem(SetElem, TLvalToArr);
  EXPECT_TEQ(TLvalToArr, elem.baseType);
  EXPECT_FALSE(elem.baseTypeChanged);
  EXPECT_TRUE(elem.baseValChanged);

  MInstrEffects prop(SetProp, TObj);
  EXPECT_TEQ(TObj, prop.baseType);
  EXPECT_FALSE(prop.baseTypeChanged);
  EXPECT_FALSE(prop.baseValChanged);
}
コード例 #5
0
ファイル: vector.cpp プロジェクト: MarkTseng/hiphop-php
TEST(VectorEffects, UnknownBase) {
  VectorEffects ve(SetElem, Type::PtrToCell, Type::Int, Type::Obj);
  EXPECT_TEQ(Type::PtrToCell, ve.baseType);
  EXPECT_FALSE(ve.baseTypeChanged);
  EXPECT_TRUE(ve.baseValChanged);
}
コード例 #6
0
ファイル: vector.cpp プロジェクト: MarkTseng/hiphop-php
TEST(VectorEffects, NonArrElem) {
  VectorEffects ve(SetElem, Type::PtrToDbl, Type::Int, Type::Obj);
  EXPECT_TEQ(Type::PtrToDbl, ve.baseType);
  EXPECT_FALSE(ve.baseTypeChanged);
  EXPECT_FALSE(ve.baseValChanged);
}
コード例 #7
0
ファイル: vector.cpp プロジェクト: MarkTseng/hiphop-php
TEST(VectorEffects, NonObjProp) {
  VectorEffects ve(SetProp, Type::PtrToInt, Type::Str, Type::Dbl);
  EXPECT_TEQ(Type::PtrToInt, ve.baseType);
  EXPECT_FALSE(ve.baseTypeChanged);
  EXPECT_FALSE(ve.baseValChanged);
}
コード例 #8
0
ファイル: vector.cpp プロジェクト: MarkTseng/hiphop-php
TEST(VectorEffects, BadArrayKey) {
  VectorEffects ve(SetElem, Type::PtrToArr, Type::Arr, Type::Int);
  EXPECT_TEQ(Type::PtrToArr, ve.baseType);
  EXPECT_FALSE(ve.baseTypeChanged);
  EXPECT_TRUE(ve.baseValChanged);
}
コード例 #9
0
ファイル: minstr.cpp プロジェクト: swtaarrs/hhvm
TEST(MInstrEffects, UnknownBase) {
  MInstrEffects effects(SetElem, TLvalToCell);
  EXPECT_TEQ(TLvalToCell - TLvalToNull, effects.baseType);
  EXPECT_TRUE(effects.baseTypeChanged);
  EXPECT_TRUE(effects.baseValChanged);
}
コード例 #10
0
ファイル: minstr.cpp プロジェクト: swtaarrs/hhvm
TEST(MInstrEffects, NonArrElem) {
  MInstrEffects effects(SetElem, TLvalToDbl);
  EXPECT_TEQ(TLvalToDbl, effects.baseType);
  EXPECT_FALSE(effects.baseTypeChanged);
  EXPECT_FALSE(effects.baseValChanged);
}
コード例 #11
0
ファイル: minstr.cpp プロジェクト: swtaarrs/hhvm
TEST(MInstrEffects, NonObjProp) {
  MInstrEffects effects(SetProp, TLvalToInt);
  EXPECT_TEQ(TLvalToInt, effects.baseType);
  EXPECT_FALSE(effects.baseTypeChanged);
  EXPECT_FALSE(effects.baseValChanged);
}
コード例 #12
0
ファイル: minstr.cpp プロジェクト: swtaarrs/hhvm
TEST(MInstrEffects, BadArrayKey) {
  MInstrEffects effects(SetElem, TLvalToArr);
  EXPECT_TEQ(TLvalToArr, effects.baseType);
  EXPECT_FALSE(effects.baseTypeChanged);
  EXPECT_TRUE(effects.baseValChanged);
}