aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMooneer Salem <[email protected]>2023-09-29 08:58:14 -0700
committerMooneer Salem <[email protected]>2023-09-29 08:58:14 -0700
commit5a521236eddb8a9e3a61edebd2243a70c9ad52ab (patch)
tree0511116d4b7e4b1d4b7b3f349ccccc6a80dc96cf
parentbb005db976a15ec78d0b538e1e89da616a823370 (diff)
Actually have ctests run without hanging.
-rwxr-xr-xstm32/unittest/scripts/run_stm32_prog5
-rwxr-xr-xstm32/unittest/scripts/tst_ldpc_dec_check4
-rw-r--r--stm32/unittest/src/tst_codec2_dec.c4
-rw-r--r--stm32/unittest/src/tst_codec2_enc.c2
-rw-r--r--stm32/unittest/src/tst_ldpc_dec.c42
-rw-r--r--stm32/unittest/src/tst_ldpc_enc.c20
-rw-r--r--stm32/unittest/src/tst_ofdm_demod.c6
7 files changed, 43 insertions, 40 deletions
diff --git a/stm32/unittest/scripts/run_stm32_prog b/stm32/unittest/scripts/run_stm32_prog
index 18b2c08..ac1e661 100755
--- a/stm32/unittest/scripts/run_stm32_prog
+++ b/stm32/unittest/scripts/run_stm32_prog
@@ -34,11 +34,13 @@ if [ ${ARGS[--qemu]+_} ]; then
# QEMU
cat <<-EEOOFF >> gdb_cmds
shell killall qemu-system-arm
- shell qemu-system-arm -M netduinoplus2 -s -S -semihosting -monitor null -serial null -nographic -kernel ${ELF} 2> >(tee stderr.log >&2) | tee stdout.log &
+ shell qemu-system-arm -M netduinoplus2 -s -S -semihosting -monitor null -serial null -nographic -kernel ${ELF} &
shell sleep ${UT_SLEEP}
target remote :1234
monitor arm semihosting enable
monitor arm semihosting_fileio $UT_SH_FIO
+ set logging file stdout.log
+ set logging on
EEOOFF
SHUTDOWN="shell killall qemu-system-arm"
elif [ ! ${ARGS[--st-util]+_} ]; then
@@ -83,6 +85,7 @@ fi
cat <<-EEOOFF >> gdb_cmds
monitor reset halt
monitor adapter speed 4000
+ set breakpoint pending on
break EndofMain
break abort
EEOOFF
diff --git a/stm32/unittest/scripts/tst_ldpc_dec_check b/stm32/unittest/scripts/tst_ldpc_dec_check
index a301798..4521192 100755
--- a/stm32/unittest/scripts/tst_ldpc_dec_check
+++ b/stm32/unittest/scripts/tst_ldpc_dec_check
@@ -55,9 +55,9 @@ if [[ $p1 -eq 1 && $p2 -eq 1 ]]; then echo "Pass";
else echo "Fail"; let Fails=($Fails + 1); fi
#
echo -e "\nTarget BER values"
-n=$(grep 'Raw.*BER:' stderr.log | cut -d ' ' -f 7)
+n=$(grep 'Raw.*BER:' stdout.log | cut -d ' ' -f 7)
p1=$(echo $n '<=' ${BER_LIMIT_RAW} | bc)
-n=$(grep 'Coded.*BER:' stderr.log | cut -d ' ' -f 7)
+n=$(grep 'Coded.*BER:' stdout.log | cut -d ' ' -f 7)
p2=$(echo $n '<=' ${BER_LIMIT_CODED} | bc)
if [[ $p1 -eq 1 && $p2 -eq 1 ]]; then echo "Pass";
else echo "Fail"; let Fails=($Fails + 1); fi
diff --git a/stm32/unittest/src/tst_codec2_dec.c b/stm32/unittest/src/tst_codec2_dec.c
index 406a84d..2c89ad0 100644
--- a/stm32/unittest/src/tst_codec2_dec.c
+++ b/stm32/unittest/src/tst_codec2_dec.c
@@ -128,14 +128,14 @@ int main(int argc, char *argv[]) {
perror("Error opening input file\n");
exit(1);
}
- setvbuf(fin, fin_buffer,_IOFBF,sizeof(fin_buffer));
+ //setvbuf(fin, fin_buffer,_IOFBF,sizeof(fin_buffer));
FILE *fout = fopen("stm_out.raw", "wb" );
if (fout == NULL) {
perror("Error opening output file\n");
exit(1);
}
- setvbuf(fout, fout_buffer,_IOFBF,sizeof(fout_buffer));
+ //setvbuf(fout, fout_buffer,_IOFBF,sizeof(fout_buffer));
frame = 0;
diff --git a/stm32/unittest/src/tst_codec2_enc.c b/stm32/unittest/src/tst_codec2_enc.c
index f799265..4597a9f 100644
--- a/stm32/unittest/src/tst_codec2_enc.c
+++ b/stm32/unittest/src/tst_codec2_enc.c
@@ -132,7 +132,7 @@ int main(int argc, char *argv[]) {
perror("Error opening input file\n");
exit(1);
}
- setvbuf(fin, fin_buffer,_IOFBF,sizeof(fin_buffer));
+ //setvbuf(fin, fin_buffer,_IOFBF,sizeof(fin_buffer));
FILE* fout = fopen("stm_out.raw", "wb");
if (fout == NULL) {
diff --git a/stm32/unittest/src/tst_ldpc_dec.c b/stm32/unittest/src/tst_ldpc_dec.c
index f177255..6248d1f 100644
--- a/stm32/unittest/src/tst_ldpc_dec.c
+++ b/stm32/unittest/src/tst_ldpc_dec.c
@@ -60,7 +60,7 @@ int main(int argc, char *argv[]) {
uint8_t out_data[HRA_112_112_CODELENGTH];
struct LDPC ldpc;
int data_bits_per_frame;
- FILE *fout;
+ int fout;
int iter, total_iters;
int Tbits, Terrs, Tbits_raw, Terrs_raw;
@@ -68,7 +68,7 @@ int main(int argc, char *argv[]) {
semihosting_init();
- fprintf(stderr, "LDPC decode test and profile\n");
+ fprintf(stdout, "LDPC decode test and profile\n");
PROFILE_VAR(ldpc_decode);
machdep_profile_init();
@@ -113,30 +113,30 @@ int main(int argc, char *argv[]) {
Tbits = Terrs = Tbits_raw = Terrs_raw = 0;
}
- FILE* fin = fopen("stm_in.raw", "rb");
- if (fin == NULL) {
- fprintf(stderr, "Error opening input file\n");
- fflush(stderr);
+ int fin = open("stm_in.raw", O_BINARY | O_RDONLY);
+ if (fin < 0) {
+ fprintf(stdout, "Error opening input file\n");
+ fflush(stdout);
exit(1);
}
- setvbuf(fin, fin_buffer,_IOFBF,sizeof(fin_buffer));
+ //setvbuf(fin, fin_buffer,_IOFBF,sizeof(fin_buffer));
- fout = fopen("stm_out.raw", "wb");
- if (fout == NULL) {
- fprintf(stderr, "Error opening output file\n");
- fflush(stderr);
+ fout = open("stm_out.raw", O_BINARY | O_WRONLY);
+ if (fout < 0) {
+ fprintf(stdout, "Error opening output file\n");
+ fflush(stdout);
exit(1);
}
- setvbuf(fout, fout_buffer,_IOFBF,sizeof(fout_buffer));
+ //setvbuf(fout, fout_buffer,_IOFBF,sizeof(fout_buffer));
float *input_float = calloc(CodeLength, sizeof(float));
nread = CodeLength;
- fprintf(stderr, "CodeLength: %d\n", CodeLength);
+ fprintf(stdout, "CodeLength: %d\n", CodeLength);
frame = 0;
- while(fread(input_float, sizeof(float) , nread, fin) == nread) {
- fprintf(stderr, "frame %d\n", frame);
+ while(read(fin, input_float, sizeof(float) * nread) == nread * sizeof(float)) {
+ fprintf(stdout, "frame %d\n", frame);
if (testframes) {
char in_char;
@@ -164,7 +164,7 @@ int main(int argc, char *argv[]) {
//fprintf(stderr, "iter: %d\n", iter);
total_iters += iter;
- fwrite(out_data, sizeof(char), data_bits_per_frame, fout);
+ write(fout, out_data, sizeof(char) * data_bits_per_frame);
if (testframes) {
for (i=0; i<data_bits_per_frame; i++) {
@@ -179,15 +179,15 @@ int main(int argc, char *argv[]) {
frame++;
}
- fclose(fin);
- fclose(fout);
+ close(fin);
+ close(fout);
- fprintf(stderr, "total iters %d\n", total_iters);
+ fprintf(stdout, "total iters %d\n", total_iters);
if (testframes) {
- fprintf(stderr, "Raw Tbits..: %d Terr: %d BER: %4.3f\n",
+ fprintf(stdout, "Raw Tbits..: %d Terr: %d BER: %4.3f\n",
Tbits_raw, Terrs_raw, (double)(Terrs_raw/(Tbits_raw+1E-12)));
- fprintf(stderr, "Coded Tbits: %d Terr: %d BER: %4.3f\n",
+ fprintf(stdout, "Coded Tbits: %d Terr: %d BER: %4.3f\n",
Tbits, Terrs, (double)(Terrs/(Tbits+1E-12)));
}
diff --git a/stm32/unittest/src/tst_ldpc_enc.c b/stm32/unittest/src/tst_ldpc_enc.c
index 30624d2..8b3062e 100644
--- a/stm32/unittest/src/tst_ldpc_enc.c
+++ b/stm32/unittest/src/tst_ldpc_enc.c
@@ -76,32 +76,32 @@ int main(int argc, char *argv[])
ldpc.H_rows = (uint16_t *)HRA_112_112_H_rows;
ldpc.H_cols = (uint16_t *)HRA_112_112_H_cols;
- FILE* fin = fopen("stm_in.raw", "rb");
- if (fin == NULL) {
+ int fin = open("stm_in.raw", O_BINARY | O_RDONLY);
+ if (fin < 0) {
printf("Error opening input file\n");
exit(1);
}
- setvbuf(fin, fin_buffer,_IOFBF,sizeof(fin_buffer));
+ //setvbuf(fin, fin_buffer,_IOFBF,sizeof(fin_buffer));
- FILE* fout = fopen("stm_out.raw", "wb");
- if (fout == NULL) {
+ int fout = open("stm_out.raw", O_BINARY | O_WRONLY);
+ if (fout < 0) {
printf("Error opening output file\n");
exit(1);
}
- while (fread(ibits, sizeof(char) , ldpc.NumberParityBits, fin) ==
+ while (read(fin, ibits, sizeof(char) * ldpc.NumberParityBits) ==
ldpc.NumberParityBits) {
PROFILE_SAMPLE(ldpc_encode);
encode(&ldpc, ibits, pbits);
PROFILE_SAMPLE_AND_LOG2(ldpc_encode, " ldpc_encode");
- fwrite(ibits, sizeof(char) , ldpc.NumberRowsHcols, fout);
- fwrite(pbits, sizeof(char) , ldpc.NumberParityBits, fout);
+ write(fout, ibits, sizeof(char) * ldpc.NumberRowsHcols);
+ write(fout, pbits, sizeof(char) * ldpc.NumberParityBits);
}
- fclose(fin);
- fclose(fout);
+ close(fin);
+ close(fout);
fflush(stdout);
stdout = freopen("stm_profile", "w", stdout);
diff --git a/stm32/unittest/src/tst_ofdm_demod.c b/stm32/unittest/src/tst_ofdm_demod.c
index 54cc027..f41f6d8 100644
--- a/stm32/unittest/src/tst_ofdm_demod.c
+++ b/stm32/unittest/src/tst_ofdm_demod.c
@@ -207,7 +207,7 @@ int main(int argc, char *argv[]) {
fprintf(stderr, "Error opening input file\n");
exit(1);
}
- setvbuf(fin, fin_buffer,_IOFBF,sizeof(fin_buffer));
+ //setvbuf(fin, fin_buffer,_IOFBF,sizeof(fin_buffer));
fout = fopen("stm_out.raw", "wb");
@@ -215,14 +215,14 @@ int main(int argc, char *argv[]) {
fprintf(stderr, "Error opening output file\n");
exit(1);
}
- setvbuf(fout, fout_buffer,_IOFBF,sizeof(fout_buffer));
+ //setvbuf(fout, fout_buffer,_IOFBF,sizeof(fout_buffer));
fdiag = fopen("stm_diag.raw", "wb");
if (fdiag == NULL) {
fprintf(stderr, "Error opening diag file\n");
exit(1);
}
- setvbuf(fdiag, fdiag_buffer,_IOFBF,sizeof(fdiag_buffer));
+ //setvbuf(fdiag, fdiag_buffer,_IOFBF,sizeof(fdiag_buffer));
nin_frame = ofdm_get_nin(ofdm);
int num_read;