static void new_viewMemory_twoData(void **state){ heap_t * newHeap = heap_new(100,30); memory_t * newMemory = heap_interactionMemory(newHeap, 50); memory_check(newMemory, "Hello World!"); assert_int_equal(strcmp(memory_view(newMemory), "Hello World!"), 0); heap_t * newSecondHeap = heap_new(100,31); memory_t * newSecondMemory = heap_interactionMemory(newSecondHeap, 30); memory_check(newSecondMemory, "Hello C\C++!"); assert_int_equal(strcmp(memory_view(newSecondMemory), "Hello C\C++!"), 0); heap_delete(newHeap); heap_delete(newSecondHeap); }
static void new_viewMemory_invalidData(void **state){ heap_t * newHeap = heap_new(100,30); memory_t * newMemory = heap_interactionMemory(newHeap, 20); memory_check(newMemory, "Hello World!"); assert_int_equal(strcmp(memory_view(newMemory), "Zdrastvuyte"), -1); heap_delete(newHeap); }
static void run_machine(struct program *program) { bool simulating = true; enum STATE currentState = MAIN; outputHeight = (uint16_t) (2 * (LINES - 6) / 3 - 2); memoryOutput = malloc(sizeof(uint16_t) * outputHeight); if (NULL == memoryOutput) { perror("LC3-Simulator"); exit(EXIT_FAILURE); } generateContext(context, program, 0, program->simulator.PC); while (simulating) { set_state(¤tState); switch (currentState) { case MAIN: simulating = main_view(status, ¤tState, program); break; case SIM: simulating = simulator_view(output, status, program, ¤tState); break; case MEM: if (-1 == memPopulated) { generateContext(context, program, 0, program->simulator.PC); } else { generateContext(context, program, selected, (uint16_t) memPopulated); } simulating = memory_view(context, program, ¤tState); break; default: break; } } free(memoryOutput); memoryOutput = NULL; }