45 lines
1.6 KiB
C
45 lines
1.6 KiB
C
void fill_pattern(uint32_t *buf, size_t words, uint32_t pattern) {
|
|
for (size_t i = 0; i < words; i++) {
|
|
buf[i] = pattern;
|
|
}
|
|
}
|
|
|
|
void fill_increment(uint32_t *buf, size_t words) {
|
|
for (size_t i = 0; i < words; i++) {
|
|
buf[i] = (uint32_t)i;
|
|
}
|
|
}
|
|
int check_pattern(uint32_t *buf, size_t words, uint32_t pattern) {
|
|
int errors = 0;
|
|
for (size_t i = 0; i < words; i++) {
|
|
if (buf[i] != pattern) {
|
|
printf("Ошибка в тесте %zu: должен быть: 0x%08X, фактический: 0x%08X\n", i, pattern, buf[i]);
|
|
errors++;
|
|
if (errors > 10) break;
|
|
}
|
|
}
|
|
return errors;
|
|
}
|
|
void* fill_pattern_multi_tred(void *arg) {
|
|
struct tred_pizdec* meta = (struct tred_pizdec*) arg;
|
|
DEBUG_PRINT("id: 0x%08X\n", test_patterns[meta->id]);
|
|
for (size_t i = meta->words_start; i < meta->words_stop; i++) {
|
|
meta->mem[i] = test_patterns[meta->id];
|
|
}
|
|
uint32_t mem_2 = meta->mem[meta->words_start];
|
|
DEBUG_PRINT("id_1: 0x%08X\n", meta->mem[meta->words_start]);
|
|
DEBUG_PRINT("id_2: 0x%08X\n", mem_2);
|
|
return NULL;
|
|
}
|
|
void* fill_increment_multi_tred(void *arg) {
|
|
struct tred_pizdec* meta = (struct tred_pizdec*) arg;
|
|
meta->return_error = 0;
|
|
for (size_t i = meta->words_start; i < meta->words_stop; i++){
|
|
if (meta->mem[i] != test_patterns[meta->id]) {
|
|
printf("Ошибка в тесте %zu: должен быть: 0x%08X, фактический: 0x%08X\n", i, test_patterns[meta->id], meta->mem[i]);
|
|
meta->return_error++;
|
|
if (meta->return_error > 10) break;
|
|
}
|
|
}
|
|
return NULL;
|
|
}
|