From 1e2599c7bbf9ce966e89eb18c9d3c16615357be5 Mon Sep 17 00:00:00 2001 From: Thomas Walker Lynch Date: Fri, 29 Mar 2019 01:29:38 +0100 Subject: [PATCH] tranche-target runs --- module/da/test/{ => lib}/test.dat | 0 module/da/test/makefile | 8 +++++ module/da/test/makefile-dep | 5 --- module/da/test/makefile-flags | 16 +--------- module/da/test/{ => src}/test_da.cli.c | 0 module/da/test/{ => src}/test_da.lib.c | 17 +++++----- module/da/test/{ => src}/test_da.lib.h | 0 module/da/test/test_da.cli.o | Bin 7584 -> 0 bytes module/da/test/test_da.lib.o | Bin 10768 -> 0 bytes module/share/bin/tranche | Bin 0 -> 31808 bytes module/share/bin/tranche-target | Bin 0 -> 31928 bytes module/share/include/tranche.h | 6 +++- module/share/lib/libda.a | Bin 12372 -> 12372 bytes module/share/lib/libtranche.a | Bin 0 -> 17304 bytes ...che-targets.cli.c => tranche-target.cli.c} | 10 +++--- module/tranche/src/tranche.lib.c | 29 +++++++++--------- module/tranche/src/tranche.lib.h | 2 +- module/tranche/test/test2.sh | 8 +++++ module/tranche/test/test2stdout.dat | 2 ++ module/tranche/test/test2stdout.dat.expected | 2 ++ module/tranche/test/test3.out.expected | 5 +++ module/tranche/test/test3.sh | 6 ++++ module/tranche/test/test4.out | 2 ++ module/tranche/test/test4.sh | 6 ++++ module/tranche/test/tranche | 2 +- module/tranche/test/tranche-target | 1 + tool/lib/makefile_cc | 14 ++++----- 27 files changed, 86 insertions(+), 55 deletions(-) rename module/da/test/{ => lib}/test.dat (100%) delete mode 100644 module/da/test/makefile-dep rename module/da/test/{ => src}/test_da.cli.c (100%) rename module/da/test/{ => src}/test_da.lib.c (87%) rename module/da/test/{ => src}/test_da.lib.h (100%) delete mode 100644 module/da/test/test_da.cli.o delete mode 100644 module/da/test/test_da.lib.o create mode 100755 module/share/bin/tranche create mode 100755 module/share/bin/tranche-target create mode 100644 module/share/lib/libtranche.a rename module/tranche/src/{tranche-targets.cli.c => tranche-target.cli.c} (80%) create mode 100644 module/tranche/test/test2.sh create mode 100644 module/tranche/test/test2stdout.dat create mode 100644 module/tranche/test/test2stdout.dat.expected create mode 100644 module/tranche/test/test3.out.expected create mode 100644 module/tranche/test/test3.sh create mode 100644 module/tranche/test/test4.out create mode 100644 module/tranche/test/test4.sh create mode 120000 module/tranche/test/tranche-target diff --git a/module/da/test/test.dat b/module/da/test/lib/test.dat similarity index 100% rename from module/da/test/test.dat rename to module/da/test/lib/test.dat diff --git a/module/da/test/makefile b/module/da/test/makefile index dbd6be0..ae31fa3 100644 --- a/module/da/test/makefile +++ b/module/da/test/makefile @@ -7,6 +7,14 @@ SHELL=/bin/bash .PHONY: all all: version deps lib exec +.PHONY: lib +lib: + $(MAKE) $@ + +.PHONY: exec +exec: + $(MAKE) $@ + %:: $(MAKE) $@ diff --git a/module/da/test/makefile-dep b/module/da/test/makefile-dep deleted file mode 100644 index cf61fb9..0000000 --- a/module/da/test/makefile-dep +++ /dev/null @@ -1,5 +0,0 @@ -./test_da.lib.o: test_da.lib.c ../include/da.h test_da.lib.h -./test_da.cli.o: test_da.cli.c test_da.lib.h - -./test_da : ./test_da.cli.o ./libtest.a - gcc -o ./test_da ./test_da.cli.o -L. -L../lib -ltest -lda diff --git a/module/da/test/makefile-flags b/module/da/test/makefile-flags index a8adf4d..dbcffea 100644 --- a/module/da/test/makefile-flags +++ b/module/da/test/makefile-flags @@ -7,27 +7,13 @@ ECHO= echo # directories used by this makefile, these could all be set to dot for # the simplest source directory structure - -#LIDBIR, EXECSDIR, HDIR hold the make results that might later be shared -#$(PWD) is the directory that make was called from, this is already build in -#set to dot to use the same directory as the source code -#leave blank to ommit -DEPRDIR= -DOCDIR= -EXECDIR=. -INCDIR=. -LIBDIR=. -SRCDIR=. TESTDIR= -TMPDIR=. -TOOLDIR=$(realpath $(PROJECT_SUBU)/tool) -TRYDIR= # compiler and flags C=gcc CFLAGS=-std=gnu11 -fPIC -I../include -ggdb -Werror -DDEBUG -DDEBUGDB #CFLAGS=-std=gnu11 -fPIC -I../include -Werror -LINKFLAGS=-L. -L../lib -ltest -lda +LINKFLAGS= -Llib -L../lib -ltest -lda MAKE=/usr/bin/make --no-print-directory -f $(PROJECT_SUBU)/tool/lib/makefile_cc #MAKE=/usr/bin/make -f $(PROJECT_SUBU)/tool/lib/makefile_cc diff --git a/module/da/test/test_da.cli.c b/module/da/test/src/test_da.cli.c similarity index 100% rename from module/da/test/test_da.cli.c rename to module/da/test/src/test_da.cli.c diff --git a/module/da/test/test_da.lib.c b/module/da/test/src/test_da.lib.c similarity index 87% rename from module/da/test/test_da.lib.c rename to module/da/test/src/test_da.lib.c index 88a94c7..0ab06c8 100644 --- a/module/da/test/test_da.lib.c +++ b/module/da/test/src/test_da.lib.c @@ -74,38 +74,41 @@ bool test_da_1(){ // da_fgets bool test_da_2(){ - FILE *fd = fopen("test.dat","r"); + char *data_file_name = "../lib/test.dat"; + FILE *file = fopen(data_file_name,"r"); + if(!file){ + fprintf(stderr,"test_da_2, could not open data file %s for reading\n", data_file_name); + return false; + } Da da; da_alloc(&da, sizeof(char)); - da_fgets(&da, fd); + da_fgets(&da, file); bool f0 = !strcmp(da.base, "this is a test"); char *old_base; da_pop(&da, NULL); // pop the prior null terminator char *s1 = da.end; - old_base = da_fgets(&da,fd); + old_base = da_fgets(&da,file); da_rebase(&da, old_base, &s1); bool f1 = !strcmp(s1, "ends without a newline"); da_pop(&da, NULL); // pop the prior null terminator char *s2 = da.end; - old_base = da_fgets(&da,fd); + old_base = da_fgets(&da,file); da_rebase(&da, old_base, &s2); bool f2 = !strcmp(s2, "(setq mode-require-final-newline nil)"); bool f3 = !strcmp(da.base, "this is a testends without a newline(setq mode-require-final-newline nil)"); - fclose(fd); + fclose(file); return f0 && f1 && f2 && f3; } // da_fgets bool test_da_3(){ - FILE *fd = fopen("test.dat","r"); - Da da; da_alloc(&da, sizeof(int)); diff --git a/module/da/test/test_da.lib.h b/module/da/test/src/test_da.lib.h similarity index 100% rename from module/da/test/test_da.lib.h rename to module/da/test/src/test_da.lib.h diff --git a/module/da/test/test_da.cli.o b/module/da/test/test_da.cli.o deleted file mode 100644 index d28221c2160978696ccad7d701552fb648bd71d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7584 zcmbVReQX@X6`#HH-mTB}*|D7u6Ixx`1SJLE*^Wt_5Q7uAe&mm;N-0!A)sL!1baA8nu3McK0PP)Lw3Ejh_7&dhp|?G2rt$ zAJuEW^li^Ki z249@5Tn;@>h1P5Y`N%s<*FzOG;)tS6ylOI{n!#~I&{|9&zS#689YzTz9C0tvr+TWO zA>^+tM>%H9!80l><0x~F?=%^d6z;B!lcALrkU?zG2oEBi5$96`5yb*wdSHvXg@t$vh9$&Og*Cty) zh8Y_Ig_wa2tvF#AR~xPlWcvV+npqdW03z2tB6Yi1k{cXL&H)wUlP#D>I3wiQx*Wf% z6&FG4??L@l_-kkJpL5F-z{YQL=RysOa3uL&CJZ`THDS_)@1| znqpdK+XH|jbK@}s?K^!3$gafmoZJI10PiAZd<%#!j0w%VSu3t}RHDve1`H0&1(B>|EiE^K2E0D)ATp*C1MgQ18Ptkj!>}^C zv}m%WMObSOyIehY9*g37Ydo_p>^iE!Cu!cPFQ|#wc-TRnW0R@DO7`^&A2Lo zOupiKA7(QC!72Mnp2PGhxrDRy<#rF};N~i)?`JrTUT?z2o&jZ=KegBZFOfTV!yto|w^%8NDT= zH@~IFH|lLS>xrB7W`D2o0<^E{)?+vC)tjRS_UMMM>(Tb(dKZf{X(e4R>xsAd(+Hq4 z4j8ZVrbtP@7Br$IJrU>{>h6t1Ag$)u4l^H=Oxr0kvsNvdwNlBmeIB#}Q8QHVtOGXJ z@Fr@mpTa%DtK4UsK9~q~)VkNL__jIagH5Swl|62XzVnu6GqYMN>}TerPPhrAxS+(Yrd0f~A-V1?i7HZXC(xF|J z2ZPhYw%)osHQL{w8cMHC_ooK>`q%dj46IG9-UVB6&hiD{JFq6zJLw0GJzTaS50wHy z%PmX{!;0%&H<;=zmy7vSFGMt4b^>tMTiQ7`$^yr$lpXNIqYBFqPSGwL@arm=M$DT? z2{US~W_lM5#P-BWi1HVu|2813G;1z-T8SVf8VKR2=ZFeAN!GI=(h}W9U5t zCvb9eYW#)7Wm5}8u5l4UIBe_a=!Vp4SPE-Cavk9NkEL5wOuKIv)22JL<*jk!ID8MT z1|I*g@Xy(%WXHpi(Y9FhISo`qLxU%n!q?#+mm4&}rvzI+T%!1qX;7kcHdLFUjGyFG z8ocmhUjx2zyivwa8V&Se18GpAtgQhHTO6DL8kMNn{Xf(c6(@u%c=XU2%8%SaaDMn1 z;tFlXKC=KnxB!3S0(@=(e%Av0-Uaya1^Ds;yz;pduk6#N&|`3;Kbh#Jv8UNJ7Dl5m&ABBhQ19mn(M)m7z#p&i(y@p69P3{5yqTN%)Uc z<9Klm$$sA>9^+gb;{QXu>=)M&mJdY5^R@(J>8GDwWvO2zy>-N6zi=3w*Wae-f06WW z59x>FoKW;1CVh7S{iBNh*GT{I1@vXU6QIZMjHEAbpvdFjKZ)muY2uLo3GtXiEK>g+ z>JQGFydcCJ$+Ct7)DM4s(jgw(h6u~`CjDPe&PEk|nV0Pfzk}krP2qn=yj-8s|32a^ zMPJ5OQ~0xleTBz67nZ~PSbc!VT! zeVvYe($8;6zgywoN*6Z39mA2^1@nojf-pheg%h*MLJkn+{`r2tq}*-ve!p z;@^pfPAJkI;SOtzZrhZK7` zeo22Dghu&0(I9^vpeyZVUNLsHZ}dG*{f|&1-o^0lr`qG1P+k#W;2#!rQN;NT7d2P- Rnl!RMMe&~s8-uLc{~x_m)7bz3 diff --git a/module/da/test/test_da.lib.o b/module/da/test/test_da.lib.o deleted file mode 100644 index 2a03683de94467de6719da24d1878588bcdf1aae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10768 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 literal 0 HcmV?d00001 diff --git a/module/share/bin/tranche-target b/module/share/bin/tranche-target new file mode 100755 index 0000000000000000000000000000000000000000..bc5d9c1d651ff59a2c977098bc0a7e058089e1b6 GIT binary patch literal 31928 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 literal 0 HcmV?d00001 diff --git a/module/share/include/tranche.h b/module/share/include/tranche.h index 27990a6..4c1d2f3 100644 --- a/module/share/include/tranche.h +++ b/module/share/include/tranche.h @@ -1,8 +1,12 @@ #ifndef TRANCHE_LIB_H #define TRANCHE_LIB_H -int tranche_send(FILE *src, Da *arg_fds); +#define TRANCHE_ERR_ARGC 1 +#define TRANCHE_ERR_SRC_OPEN 2 +#define TRANCHE_ERR_DEP_OPEN 4 +int tranche_send(FILE *src, Da *arg_fds); +int tranche_target(FILE *src, Da *targets); #endif diff --git a/module/share/lib/libda.a b/module/share/lib/libda.a index f414c16ae9221d4aff5fd797ca754ad737bfd760..a7b5b79c8dae5863a49aad0606e34f3d68bcc326 100644 GIT binary patch delta 25 dcmcbTa3x`a9E-V`vEfD~9!4-@vk{|`J^*YY2G{@q delta 25 dcmcbTa3x`a9E+KOsrg1F9!4-@vk{|`J^*YT2HF4s diff --git a/module/share/lib/libtranche.a b/module/share/lib/libtranche.a new file mode 100644 index 0000000000000000000000000000000000000000..3e540aaad5ee93555fcb13e57d47c03d6669a2bc GIT binary patch literal 17304 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 Jg+HeJ{{!2)dn5n= literal 0 HcmV?d00001 diff --git a/module/tranche/src/tranche-targets.cli.c b/module/tranche/src/tranche-target.cli.c similarity index 80% rename from module/tranche/src/tranche-targets.cli.c rename to module/tranche/src/tranche-target.cli.c index 0ad2045..b579e88 100644 --- a/module/tranche/src/tranche-targets.cli.c +++ b/module/tranche/src/tranche-target.cli.c @@ -32,10 +32,12 @@ int main(int argc, char **argv, char **envp){ } if(err) return err; - Da targets; - da_alloc(&targets, sizeof(char *)); - tranche_targets(src_file, &targets); - da_strings_puts(&targets); + Da target_arr; + Da *target_arrp = &target_arr; + da_alloc(target_arrp, sizeof(char *)); + tranche_target(src_file, target_arrp); + da_strings_puts(target_arrp); + da_free_elements(target_arrp); fclose(src_file); return 0; } diff --git a/module/tranche/src/tranche.lib.c b/module/tranche/src/tranche.lib.c index 533fa11..276fa95 100644 --- a/module/tranche/src/tranche.lib.c +++ b/module/tranche/src/tranche.lib.c @@ -132,39 +132,38 @@ static void string_equal(void *sp, void *closure){ char *string_element = *(char **)sp; string_state *ss = (string_state *)closure; if( ss->found ) return; - char *test_string = ss->string; - ss->found = !strcmp(string_element, test_string); + ss->found = !strcmp(string_element, ss->string); return; } -static bool exists(Da *strings, char *test_string){ +static bool exists(Da *string_arrp, char *test_string){ string_state ss; ss.string = test_string; ss.found = false; - da_map(strings, string_equal, &ss); + da_map(string_arrp, string_equal, &ss); return ss.found; } // only inserts the string if it is not already in the array -static void insert_if_unique(Da *strings, char *proffered_string){ - if( exists( strings, proffered_string)){ // then throw it away, we don't need it +static void insert_if_unique(Da *string_arrp, char *proffered_string){ + if( exists( string_arrp, proffered_string)){ // then throw it away, we don't need it free(proffered_string); return; } - da_push(strings, proffered_string); + da_push(string_arrp, &proffered_string); } // dissolves proffered array into the existing array static void combine_one(void *psp, void *closure){ - char *proffered_string = (char *)psp; - Da *strings = (Da *)closure; - insert_if_unique(strings, proffered_string); + char *proffered_string = *(char **)psp; + Da *string_arrp = (Da *)closure; + insert_if_unique(string_arrp, proffered_string); } -static void combine(Da *strings, Da *proffered_strings){ - da_map(proffered_strings, combine_one, strings); +static void combine(Da *string_arrp, Da *proffered_string_arrp){ + da_map(proffered_string_arrp, combine_one, string_arrp); return; } -int tranche_targets(FILE *src, Da *targets){ +int tranche_target(FILE *src, Da *target_arrp){ char *pt; Da line; // buffer holding the characters from a line Da file_name_arr;// an array of file name parameters parsed from a #tranche line @@ -176,7 +175,9 @@ int tranche_targets(FILE *src, Da *targets){ pt = is_tranche_begin(line.base); if(pt){ // then this line is the start of a nested tranche block parse_file_list(&file_name_arr, pt); - combine(targets, &file_name_arr); // frees strings that are not inserted + combine(target_arrp, &file_name_arr); // frees strings that are not inserted + da_rewind(&file_name_arr); + tranche_target(src, target_arrp); } da_rewind(&line); } diff --git a/module/tranche/src/tranche.lib.h b/module/tranche/src/tranche.lib.h index 3873b67..4c1d2f3 100644 --- a/module/tranche/src/tranche.lib.h +++ b/module/tranche/src/tranche.lib.h @@ -6,7 +6,7 @@ #define TRANCHE_ERR_DEP_OPEN 4 int tranche_send(FILE *src, Da *arg_fds); -int tranche_targets(FILE *src, Da *targets); +int tranche_target(FILE *src, Da *targets); #endif diff --git a/module/tranche/test/test2.sh b/module/tranche/test/test2.sh new file mode 100644 index 0000000..1a4cf28 --- /dev/null +++ b/module/tranche/test/test2.sh @@ -0,0 +1,8 @@ +#!/bin/bash -x +./tranche test2.trc.c >test2stdout.dat +diff test2.c test2.c.expected +diff test2.h test2.h.expected +diff test2stdout.dat test2stdout.dat.expected +rm test2.c test2.h + + diff --git a/module/tranche/test/test2stdout.dat b/module/tranche/test/test2stdout.dat new file mode 100644 index 0000000..139597f --- /dev/null +++ b/module/tranche/test/test2stdout.dat @@ -0,0 +1,2 @@ + + diff --git a/module/tranche/test/test2stdout.dat.expected b/module/tranche/test/test2stdout.dat.expected new file mode 100644 index 0000000..139597f --- /dev/null +++ b/module/tranche/test/test2stdout.dat.expected @@ -0,0 +1,2 @@ + + diff --git a/module/tranche/test/test3.out.expected b/module/tranche/test/test3.out.expected new file mode 100644 index 0000000..8294b86 --- /dev/null +++ b/module/tranche/test/test3.out.expected @@ -0,0 +1,5 @@ +test11.dat +test12.dat +test13.dat +test14.dat +test15.dat diff --git a/module/tranche/test/test3.sh b/module/tranche/test/test3.sh new file mode 100644 index 0000000..e655682 --- /dev/null +++ b/module/tranche/test/test3.sh @@ -0,0 +1,6 @@ +#!/bin/bash -x +./tranche-target test1.dat > test3.out +diff test3.out test3.out.expected +rm test3.out + + diff --git a/module/tranche/test/test4.out b/module/tranche/test/test4.out new file mode 100644 index 0000000..05de4b1 --- /dev/null +++ b/module/tranche/test/test4.out @@ -0,0 +1,2 @@ +test2.c +test2.h diff --git a/module/tranche/test/test4.sh b/module/tranche/test/test4.sh new file mode 100644 index 0000000..49c7c4b --- /dev/null +++ b/module/tranche/test/test4.sh @@ -0,0 +1,6 @@ +#!/bin/bash -x +./tranche-target test2.trc.c > test4.out +diff test4.out test4.out.expected +rm test4.out + + diff --git a/module/tranche/test/tranche b/module/tranche/test/tranche index acf4a6f..701f193 120000 --- a/module/tranche/test/tranche +++ b/module/tranche/test/tranche @@ -1 +1 @@ -../1_execs/tranche \ No newline at end of file +../exec/tranche \ No newline at end of file diff --git a/module/tranche/test/tranche-target b/module/tranche/test/tranche-target new file mode 120000 index 0000000..51e3cfa --- /dev/null +++ b/module/tranche/test/tranche-target @@ -0,0 +1 @@ +../exec/tranche-target \ No newline at end of file diff --git a/tool/lib/makefile_cc b/tool/lib/makefile_cc index d9694e8..1fc00e6 100755 --- a/tool/lib/makefile_cc +++ b/tool/lib/makefile_cc @@ -42,10 +42,6 @@ TMPDIR=tmp TOOLDIR=$(realpath $(PROJECT_SUBU)/tool) TRYDIR=try -DEPFILE=$(TMPDIR)/makefile-dep -LIBFILE=$(LIBDIR)/lib$(MODULE).a -INCFILE=$(INCDIR)/$(MODULE).h - # a single space literal, for example if you wanted to subsitute commas to # spaces: $(subst $(space),;,$(string)) blank := @@ -61,6 +57,10 @@ CC= -include makefile-flags +DEPFILE=$(TMPDIR)/makefile-dep +LIBFILE=$(LIBDIR)/lib$(MODULE).a +INCFILE=$(INCDIR)/$(MODULE).h + #-------------------------------------------------------------------------------- # targets @@ -166,9 +166,9 @@ sub_exec: $(EXEC) .PHONY: share share: - if [ -f $(LIBFILE) ];then cp $(LIBFILE) $(SHAREDIR)/lib; fi - if [ -f $(INCFILE) ];then cp $(INCFILE) $(SHAREDIR)/include; fi - if [ $(shell ls -A $(EXECDIR)) ];then cp $(EXECDIR)/* $(SHAREDIR)/bin; fi + if [ ! -z "$(wildcard $(LIBDIR)/*)" ]; then cp $(LIBDIR)/* $(SHAREDIR)/lib; fi + if [ ! -z "$(wildcard $(INCDIR)/*)" ]; then cp $(INCDIR)/* $(SHAREDIR)/include; fi + if [ ! -z "$(wildcard $(EXECDIR)/*)" ]; then cp $(EXECDIR)/* $(SHAREDIR)/bin; fi .PHONY: clean clean: -- 2.20.1