Exemple #1
0
int main(int argc, char** argv) {
  process = new simgrid::mc::RemoteClient(getpid(), -1);
  process->init();

  simgrid::dwarf::ExpressionContext state;
  state.address_space = (simgrid::mc::AddressSpace*) process;

  basic_test(state);

  for(int i=0; i!=100; ++i) {
    uintptr_t a = rnd_engine();
    uintptr_t b = rnd_engine();
    assert(eval_binary_operation(state, DW_OP_plus, a, b) == (a + b));
  }

  for(int i=0; i!=100; ++i) {
    uintptr_t a = rnd_engine();
    uintptr_t b = rnd_engine();
    assert(eval_binary_operation(state, DW_OP_or, a, b) == (a | b));
  }

  for(int i=0; i!=100; ++i) {
    uintptr_t a = rnd_engine();
    uintptr_t b = rnd_engine();
    assert(eval_binary_operation(state, DW_OP_and, a, b) == (a & b));
  }

  for(int i=0; i!=100; ++i) {
    uintptr_t a = rnd_engine();
    uintptr_t b = rnd_engine();
    assert(eval_binary_operation(state, DW_OP_xor, a, b) == (a ^ b));
  }

  test_deref(state);

  return 0;
}
int main(int argc, char** argv) {
  process = new simgrid::mc::Process(getpid(), -1);

  s_mc_expression_state_t state;
  memset(&state, 0, sizeof(s_mc_expression_state_t));
  state.address_space = (simgrid::mc::AddressSpace*) process;

  basic_test(&state);

  for(int i=0; i!=100; ++i) {
    uintptr_t a = rand();
    uintptr_t b = rand();
    assert(eval_binary_operation(&state, DW_OP_plus, a, b) == (a + b));
  }

  for(int i=0; i!=100; ++i) {
    uintptr_t a = rand();
    uintptr_t b = rand();
    assert(eval_binary_operation(&state, DW_OP_or, a, b) == (a | b));
  }

  for(int i=0; i!=100; ++i) {
    uintptr_t a = rand();
    uintptr_t b = rand();
    assert(eval_binary_operation(&state, DW_OP_and, a, b) == (a & b));
  }

  for(int i=0; i!=100; ++i) {
    uintptr_t a = rand();
    uintptr_t b = rand();
    assert(eval_binary_operation(&state, DW_OP_xor, a, b) == (a ^ b));
  }

  test_deref(&state);

  return 0;
}