Re: Help with new test case.

Akim Demaille <[email protected]>
Newsgroups gmane.comp.parsers.bison.bugs
Message-ID <[email protected]>
Kaz,

> Le 5 sept. 2020 à 21:41, Kaz Kylheku <[email protected]> a écrit :
> 
> On 2020-09-05 00:59, Kaz Kylheku wrote:
>> Hi,
>> I'm trying to add a test case in the form of a new entry in examples/c.

Examples are show cases, they are no tests.  They are there to serve
as a starting point for people who want to understand how Bison
works.

> I moved all the build rules into local.mk, and got it to work.
> 
>> 'examples/c/buildscenario/buildscenario.c', needed by
>> 'examples/c/buildscenario/examples_c_buildscenario_buildscenario-buildscenario.o'.  Stop.
> 
> This seems to have been solved using:
> 
>   nodist_%C%_buildscenario_OBJECTS = %D%/y.tab.o %D%/main.o

You have to follow the same patterns as in the other examples.

> The entire local.mk looks like this. It builds, and the executable
> examples/c/buildscenario/buildscenario is produced.
> 
> Only problem is that when the test is executed, it fails.
> If I add a "ls -l" to the test script, it shows that the temporary
> test directory that it is running in such as /home/kaz/bison/22392.dir
> is empty; the executable isn't being propagated into it.
> 
> I can't see what the other local.mk files are doing to bring that
> about, that mine isn't.
> 
> local.mk follows.

I can't debug your stuff this way.  If you have some fork with a branch,
I could check that.

> buildscenariodir = $(docdir)/%D%
> 
> check_PROGRAMS += %D%/buildscenario
> 
> dist_buildscenario_DATA = %D%/parser.y %D%/parser.h %D%/main.c %D%/Makefile %D%
> nodist_%C%_buildscenario_SOURCES = %D%/parse.y %D%/main.c %D%/parse.h
> nodist_%C%_buildscenario_OBJECTS = %D%/y.tab.o %D%/main.o
> 
> TESTS += %D%/buildscenario.test
> EXTRA_DIST += %D%/buildscenario.test
> 
> CLEANDIRS += %D%/*.dSYM
> CLEANFILES += $(%C%_buildscenario_buildscenario_OBJECTS)
> 
> buildscenario_CPPFLAGS =
> buildscenario_CFLAGS = $(TEST_CFLAGS) \
>                       -W -Wall -ansi -pedantic \
>                       -Werror=implicit-function-declaration \
>                       -Werror=missing-prototypes \
>                       -Werror=strict-prototypes

You are free to do whatever you want in your fork of Bison, but Bison
itself can't afford to assume that these flags are supported by the
compiler. 

> buildscenario_BISON = bison --yacc
> buildscenario_BISONFLAGS = -Wno-deprecated
> 
> %D%/y.tab.c: %D%/parser.y
>        $(buildscenario_BISON) $(buildscenario_BISONFLAGS) -v -d $<
>        @# workaround for Bison 3.x: yyparse declared in y.tab.h
>        sed -e /yyparse/d < y.tab.h > y.tab.h.tmp

What problem is this solving?

>        mv y.tab.h.tmp %D%/y.tab.h
>        mv y.tab.c %D%/y.tab.c
>        mv y.output %D%/y.output
> 
> %D%/main.o: %D%/parser.h
> 
> %D%/y.tab.o: %D%/parser.h %D%/y.tab.h
> 
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.