58 lines
1.5 KiB
C
58 lines
1.5 KiB
C
#pragma once
|
|
|
|
void fill_pattern(uint32_t *buf, size_t words, uint32_t pattern) {
|
|
for (unsigned int i = 0; i < words; i++) {
|
|
buf[i] = pattern;
|
|
}
|
|
}
|
|
|
|
void fill_increment(uint32_t *buf, size_t words) {
|
|
for (unsigned int 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 (unsigned int i = 0; i < words; i++) {
|
|
if (buf[i] != pattern) {
|
|
printf("\nОшибка в тесте %zu: должен быть: 0x%08X, фактический: 0x%08X\n", i, pattern, buf[i]);
|
|
errors++;
|
|
if (errors > 10) break;
|
|
}
|
|
}
|
|
return errors;
|
|
}
|
|
|
|
|
|
void fill_walking_ones(uint32_t *mem, size_t words) {
|
|
for (unsigned int i = 0; i < words; i++) {
|
|
mem[i] = 1U << (i % 32);
|
|
}
|
|
}
|
|
int fill_walking_ones_test(uint32_t *mem, size_t words) {
|
|
int errors = 0;
|
|
for (unsigned int i = 0; i < words; i++) {
|
|
if (mem[i] != 1U << (i % 32)){
|
|
printf("\nПиздец\n");
|
|
errors++;
|
|
}
|
|
}
|
|
return errors;
|
|
}
|
|
void fill_walking_zeros(uint32_t *mem, size_t words) {
|
|
for (unsigned int i = 0; i < words; i++) {
|
|
mem[i] = ~(1U << (i % 32));
|
|
}
|
|
}
|
|
int fill_walking_zeros_test(uint32_t *mem, size_t words) {
|
|
int errors = 0;
|
|
for (unsigned int i = 0; i < words; i++) {
|
|
if (mem[i] != ~(1U << (i % 32))){
|
|
printf("\nПиздец\n");
|
|
errors++;
|
|
}
|
|
}
|
|
return errors;
|
|
}
|
|
|
|
|