commit 3b5f95d67e8724fe6d12749c9dba32cbfec2e386
parent d50fb2841c87534571b3332dce5e0183b52f446e
Author: Vincent Forest <vincent.forest@meso-star.com>
Date: Wed, 9 Feb 2022 14:06:02 +0100
Test the loading of invalid files
Diffstat:
1 file changed, 85 insertions(+), 0 deletions(-)
diff --git a/src/test_shitran_isotope_metadata.c b/src/test_shitran_isotope_metadata.c
@@ -251,6 +251,90 @@ test_load(struct shitran* shitran)
CHK(fclose(fp) == 0);
}
+static void
+test_load_failures(struct shitran* shitran)
+{
+ struct shitran_isotope isotope = SHITRAN_ISOTOPE_NULL;
+ struct shitran_isotope_metadata* mdata = NULL;
+ FILE* fp = NULL;
+
+ CHK(shitran);
+
+ /* 1st line is missing */
+ CHK(fp = tmpfile());
+ molecule_print(fp, &H2O);
+ rewind(fp);
+ CHK(shitran_isotope_metadata_load_stream(shitran, fp, NULL, &mdata) == RES_BAD_ARG);
+ CHK(fclose(fp) == 0);
+
+ /* Invalid molecule id */
+ CHK(fp = tmpfile());
+ fprintf(fp, "Comment line\n");
+ fprintf(fp, "H2O 1\n");
+ isotope_print(fp, &H2O_isotopes[0]);
+ rewind(fp);
+ CHK(shitran_isotope_metadata_load_stream(shitran, fp, NULL, &mdata) == RES_BAD_ARG);
+ rewind(fp);
+ fprintf(fp, "Comment line\n");
+ fprintf(fp, "H2O (-1)\n");
+ isotope_print(fp, &H2O_isotopes[0]);
+ rewind(fp);
+ CHK(shitran_isotope_metadata_load_stream(shitran, fp, NULL, &mdata) == RES_BAD_ARG);
+ CHK(fclose(fp) == 0);
+
+ /* Invalid isotope id */
+ CHK(fp = tmpfile());
+ fprintf(fp, "Comment line\n");
+ fprintf(fp, "H2O (1)\n");
+ isotope = H2O_isotopes[0];
+ isotope.id = -1;
+ isotope_print(fp, &isotope);
+ rewind(fp);
+ CHK(shitran_isotope_metadata_load_stream(shitran, fp, NULL, &mdata) == RES_BAD_ARG);
+ CHK(fclose(fp) == 0);
+
+ /* Invalid abundance */
+ CHK(fp = tmpfile());
+ fprintf(fp, "Comment line\n");
+ fprintf(fp, "H2O (1)\n");
+ isotope = H2O_isotopes[0];
+ isotope.abundance = 0;
+ isotope_print(fp, &isotope);
+ rewind(fp);
+ CHK(shitran_isotope_metadata_load_stream(shitran, fp, NULL, &mdata) == RES_BAD_ARG);
+ CHK(fclose(fp) == 0);
+ CHK(fp = tmpfile());
+ fprintf(fp, "Comment line\n");
+ fprintf(fp, "H2O (1)\n");
+ isotope.abundance = 1.00001;
+ isotope_print(fp, &isotope);
+ rewind(fp);
+ CHK(shitran_isotope_metadata_load_stream(shitran, fp, NULL, &mdata) == RES_BAD_ARG);
+ CHK(fclose(fp) == 0);
+
+ /* Invalid Q(296K) */
+ CHK(fp = tmpfile());
+ fprintf(fp, "Comment line\n");
+ fprintf(fp, "H2O (1)\n");
+ isotope = H2O_isotopes[0];
+ isotope.Q296K = 0;
+ isotope_print(fp, &isotope);
+ rewind(fp);
+ CHK(shitran_isotope_metadata_load_stream(shitran, fp, NULL, &mdata) == RES_BAD_ARG);
+ CHK(fclose(fp) == 0);
+
+ /* Invalid molar mass */
+ CHK(fp = tmpfile());
+ fprintf(fp, "Comment line\n");
+ fprintf(fp, "H2O (1)\n");
+ isotope = H2O_isotopes[0];
+ isotope.molar_mass = 0;
+ isotope_print(fp, &isotope);
+ rewind(fp);
+ CHK(shitran_isotope_metadata_load_stream(shitran, fp, NULL, &mdata) == RES_BAD_ARG);
+ CHK(fclose(fp) == 0);
+}
+
int
main(int argc, char** argv)
{
@@ -262,6 +346,7 @@ main(int argc, char** argv)
CHK(shitran_create(&args, &shitran) == RES_OK);
test_load(shitran);
+ test_load_failures(shitran);
CHK(shitran_ref_put(shitran) == RES_OK);
CHK(mem_allocated_size() == 0);