CCTLib
Calling-context and data-object attribution library for Intel Pin
anonymous_namespace{deadspy_integration_test.cpp} Namespace Reference

Classes

class  DeadspyIntegration
 
struct  IsaVictim
 
class  DeadspyIsa
 

Functions

std::string env (const char *name)
 
std::string cctlib_root ()
 
std::string pin_root ()
 
int run_pin (const std::string &tool, const std::vector< std::string > &args)
 
std::string find_newest (const std::string &dir, const std::string &prefix)
 
std::string read_file (const std::string &path)
 
void cleanup (const std::string &dir, const std::string &prefix)
 
long parse_grand_total_dead (const std::string &content)
 
long parse_grand_total_writes (const std::string &content)
 
 TEST_F (DeadspyIntegration, RunsCleanlyOnLs)
 
 TEST_F (DeadspyIntegration, DeadWritesAppReportsDeads)
 
 TEST_F (DeadspyIntegration, TruePositiveMoreDeadsThanTrueNegative)
 
 TEST_F (DeadspyIntegration, MultiSizeTruePositiveExceedsTrueNegative)
 
 TEST_F (DeadspyIntegration, TPReportAttributesToStore8)
 
 TEST_P (DeadspyIsa, ExceedsBaseline)
 
 INSTANTIATE_TEST_SUITE_P (IsaBreadth, DeadspyIsa, ::testing::Values(IsaVictim{"deadspy_sse16_tp", 100000}, IsaVictim{"deadspy_avx32_tp", 200000}, IsaVictim{"deadspy_partial_qword_then_byte_tp", 15000}, IsaVictim{"deadspy_partial_qword_then_byte_high_tp", 15000}, IsaVictim{"deadspy_repstos_tp", 200000}, IsaVictim{"deadspy_addressing_tp", 100000}, IsaVictim{"deadspy_cross_page_qword_tp", 40000}, IsaVictim{"deadspy_pushpop_dead_tp", 40000}, IsaVictim{"deadspy_movnti_tp", 40000}, IsaVictim{"deadspy_prefetch_tp", 200000}), [](const testing::TestParamInfo< IsaVictim > &info) { return info.param.name;})
 
 TEST_F (DeadspyIsa, CmpxchgIsNotFalselyDead)
 
 TEST_F (DeadspyIsa, XchgIsNotFalselyDead)
 

Function Documentation

◆ cctlib_root()

std::string anonymous_namespace{deadspy_integration_test.cpp}::cctlib_root ( )

◆ cleanup()

void anonymous_namespace{deadspy_integration_test.cpp}::cleanup ( const std::string &  dir,
const std::string &  prefix 
)

◆ env()

std::string anonymous_namespace{deadspy_integration_test.cpp}::env ( const char *  name)

Definition at line 39 of file deadspy_integration_test.cpp.

Referenced by cctlib_root(), pin_root(), and run_pin().

◆ find_newest()

std::string anonymous_namespace{deadspy_integration_test.cpp}::find_newest ( const std::string &  dir,
const std::string &  prefix 
)

◆ INSTANTIATE_TEST_SUITE_P()

anonymous_namespace{deadspy_integration_test.cpp}::INSTANTIATE_TEST_SUITE_P ( IsaBreadth  ,
DeadspyIsa  ,
::testing::Values(IsaVictim{"deadspy_sse16_tp", 100000}, IsaVictim{"deadspy_avx32_tp", 200000}, IsaVictim{"deadspy_partial_qword_then_byte_tp", 15000}, IsaVictim{"deadspy_partial_qword_then_byte_high_tp", 15000}, IsaVictim{"deadspy_repstos_tp", 200000}, IsaVictim{"deadspy_addressing_tp", 100000}, IsaVictim{"deadspy_cross_page_qword_tp", 40000}, IsaVictim{"deadspy_pushpop_dead_tp", 40000}, IsaVictim{"deadspy_movnti_tp", 40000}, IsaVictim{"deadspy_prefetch_tp", 200000})  ,
[] (const testing::TestParamInfo< IsaVictim > &info) { return info.param.name;}   
)

◆ parse_grand_total_dead()

long anonymous_namespace{deadspy_integration_test.cpp}::parse_grand_total_dead ( const std::string &  content)

◆ parse_grand_total_writes()

long anonymous_namespace{deadspy_integration_test.cpp}::parse_grand_total_writes ( const std::string &  content)

◆ pin_root()

std::string anonymous_namespace{deadspy_integration_test.cpp}::pin_root ( )

◆ read_file()

std::string anonymous_namespace{deadspy_integration_test.cpp}::read_file ( const std::string &  path)

◆ run_pin()

int anonymous_namespace{deadspy_integration_test.cpp}::run_pin ( const std::string &  tool,
const std::vector< std::string > &  args 
)

◆ TEST_F() [1/7]

anonymous_namespace{deadspy_integration_test.cpp}::TEST_F ( DeadspyIntegration  ,
DeadWritesAppReportsDeads   
)

Definition at line 141 of file deadspy_integration_test.cpp.

◆ TEST_F() [2/7]

anonymous_namespace{deadspy_integration_test.cpp}::TEST_F ( DeadspyIntegration  ,
MultiSizeTruePositiveExceedsTrueNegative   
)

Definition at line 172 of file deadspy_integration_test.cpp.

◆ TEST_F() [3/7]

anonymous_namespace{deadspy_integration_test.cpp}::TEST_F ( DeadspyIntegration  ,
RunsCleanlyOnLs   
)

Definition at line 131 of file deadspy_integration_test.cpp.

◆ TEST_F() [4/7]

anonymous_namespace{deadspy_integration_test.cpp}::TEST_F ( DeadspyIntegration  ,
TPReportAttributesToStore8   
)

Definition at line 186 of file deadspy_integration_test.cpp.

References buf, cleanup(), find_newest(), and run_pin().

◆ TEST_F() [5/7]

anonymous_namespace{deadspy_integration_test.cpp}::TEST_F ( DeadspyIntegration  ,
TruePositiveMoreDeadsThanTrueNegative   
)

Definition at line 156 of file deadspy_integration_test.cpp.

◆ TEST_F() [6/7]

anonymous_namespace{deadspy_integration_test.cpp}::TEST_F ( DeadspyIsa  ,
CmpxchgIsNotFalselyDead   
)

Definition at line 290 of file deadspy_integration_test.cpp.

◆ TEST_F() [7/7]

anonymous_namespace{deadspy_integration_test.cpp}::TEST_F ( DeadspyIsa  ,
XchgIsNotFalselyDead   
)

Definition at line 312 of file deadspy_integration_test.cpp.

◆ TEST_P()

anonymous_namespace{deadspy_integration_test.cpp}::TEST_P ( DeadspyIsa  ,
ExceedsBaseline   
)

Definition at line 225 of file deadspy_integration_test.cpp.