diff --git a/.gitignore b/.gitignore index 1249110bf05ca97e73e0512e3c6b9dcfcc1b5b81..dc7e4db4061354fdd8c4fc129a1e7cd2a5666bce 100644 --- a/.gitignore +++ b/.gitignore @@ -54,4 +54,14 @@ ec.yacc.pdf lus2lic-types.pdf lus2lic.pdf *.tex -ocamldoc \ No newline at end of file +ocamldoc +test/* +_build/ +main.native +myocamlbuild.ml +setup.data +setup.ml +configure +linux +src/lus4ocaml.mllib +src/META \ No newline at end of file diff --git a/AUTHORS.txt b/AUTHORS.txt new file mode 100644 index 0000000000000000000000000000000000000000..a6673b9333db08d453e9f54c47f9cbc03a9c2e3b --- /dev/null +++ b/AUTHORS.txt @@ -0,0 +1,5 @@ +(* OASIS_START *) +(* DO NOT EDIT (digest: 15c1c574199bb18305867c0430ab2e6d) *) +Authors of lus2lic +Erwan Jahier and Pascal Raymond +(* OASIS_STOP *) diff --git a/INSTALL.txt b/INSTALL.txt new file mode 100644 index 0000000000000000000000000000000000000000..71ce69aa774eee11c1488c7278a7a9be6042785d --- /dev/null +++ b/INSTALL.txt @@ -0,0 +1,45 @@ +(* OASIS_START *) +(* DO NOT EDIT (digest: 3faca0f954ecfa4d577df94e53d1878d) *) +This is the INSTALL file for the lus2lic distribution. + +This package uses OASIS to generate its build system. See section OASIS for +full information. + +Dependencies +============ + +In order to compile this package, you will need: +* ocaml +* findlib +* rdbg-plugin + +Installing +========== + +1. Uncompress the source archive and go to the root of the package +2. Run 'ocaml setup.ml -configure' +3. Run 'ocaml setup.ml -build' +4. Run 'ocaml setup.ml -install' + +Uninstalling +============ + +1. Go to the root of the package +2. Run 'ocaml setup.ml -uninstall' + +OASIS +===== + +OASIS is a program that generates a setup.ml file using a simple '_oasis' +configuration file. The generated setup only depends on the standard OCaml +installation: no additional library is required. + +(* OASIS_STOP *) + +Installing alt +============== + +As a shortcut for installing command above, one can also use good old: +make configure +make +make install diff --git a/Makefile b/Makefile index 369f8e611239e9a793932796682303568cc22ad4..c6be285d2cf0eb789b9c86f07555f9f10627a7d3 100644 --- a/Makefile +++ b/Makefile @@ -1,266 +1,134 @@ -all: doit - - -include ./Makefile.common - - -COMON_SOURCES = \ - $(OBJDIR)/data.mli \ - $(OBJDIR)/data.ml \ - $(OBJDIR)/expr.ml \ - $(OBJDIR)/failure.ml \ - $(OBJDIR)/event.ml \ - $(OBJDIR)/genlex.mli \ - $(OBJDIR)/genlex.ml \ - $(OBJDIR)/rif_base.mli \ - $(OBJDIR)/rif_base.ml \ - $(OBJDIR)/verbose.ml \ - $(OBJDIR)/verbose.mli \ - - -SOC_SOURCES = \ - $(OBJDIR)/soc.ml \ - $(OBJDIR)/socUtils.mli \ - $(OBJDIR)/socUtils.ml \ - $(OBJDIR)/socPredef.mli \ - $(OBJDIR)/socPredef.ml \ - $(OBJDIR)/toposort.mli \ - $(OBJDIR)/toposort.ml \ - $(OBJDIR)/actionsDeps.mli \ - $(OBJDIR)/actionsDeps.ml \ - $(OBJDIR)/lic2soc.mli \ - $(OBJDIR)/lic2soc.ml \ - $(OBJDIR)/socExecValue.mli \ - $(OBJDIR)/socExecValue.ml \ - $(OBJDIR)/socExecEvalPredef.mli \ - $(OBJDIR)/socExecEvalPredef.ml \ - $(OBJDIR)/socExec.mli \ - $(OBJDIR)/socExec.ml - - -COMPILER_SOURCES = \ - $(OBJDIR)/lv6util.ml \ - $(OBJDIR)/filenameExtras.mli \ - $(OBJDIR)/filenameExtras.ml \ - $(OBJDIR)/lv6MainArgs.ml \ - $(OBJDIR)/lv6MainArgs.mli \ - $(OBJDIR)/ident.mli \ - $(OBJDIR)/ident.ml \ - $(OBJDIR)/lxm.mli \ - $(OBJDIR)/lxm.ml \ - $(OBJDIR)/lv6errors.ml \ - $(OBJDIR)/astPredef.ml \ - $(OBJDIR)/astCore.ml \ - $(OBJDIR)/astV6.ml \ - $(OBJDIR)/astV6Dump.mli \ - $(OBJDIR)/astV6Dump.ml \ - $(OBJDIR)/astRecognizePredef.mli \ - $(OBJDIR)/astRecognizePredef.ml \ - $(OBJDIR)/lv6parserUtils.ml \ - $(OBJDIR)/lv6parser.mly \ - $(OBJDIR)/lv6lexer.mll \ - $(OBJDIR)/astInstanciateModel.mli \ - $(OBJDIR)/astInstanciateModel.ml \ - $(OBJDIR)/astTabSymbol.mli \ - $(OBJDIR)/astTabSymbol.ml \ - $(OBJDIR)/astTab.mli \ - $(OBJDIR)/astTab.ml \ - $(OBJDIR)/lic.ml \ - $(OBJDIR)/idSolver.ml \ - $(OBJDIR)/licName.mli \ - $(OBJDIR)/licName.ml \ - $(OBJDIR)/licDump.ml \ - $(OBJDIR)/licPrg.mli \ - $(OBJDIR)/licPrg.ml \ - $(SOC_SOURCES) \ - $(OBJDIR)/unifyType.mli \ - $(OBJDIR)/unifyType.ml \ - $(OBJDIR)/unifyClock.mli \ - $(OBJDIR)/unifyClock.ml \ - $(OBJDIR)/licEvalType.mli \ - $(OBJDIR)/licEvalType.ml \ - $(OBJDIR)/licEvalConst.mli \ - $(OBJDIR)/licEvalConst.ml \ - $(OBJDIR)/licEvalClock.mli \ - $(OBJDIR)/licEvalClock.ml \ - $(OBJDIR)/evalConst.mli \ - $(OBJDIR)/evalConst.ml \ - $(OBJDIR)/evalType.mli \ - $(OBJDIR)/evalType.ml \ - $(OBJDIR)/evalClock.mli \ - $(OBJDIR)/evalClock.ml \ - $(OBJDIR)/licMetaOp.mli \ - $(OBJDIR)/licMetaOp.ml \ - $(OBJDIR)/ast2lic.mli \ - $(OBJDIR)/ast2lic.ml \ - $(OBJDIR)/misc.ml \ - $(OBJDIR)/l2lCheckLoops.mli \ - $(OBJDIR)/l2lCheckLoops.ml \ - $(OBJDIR)/l2lCheckOutputs.mli \ - $(OBJDIR)/l2lCheckOutputs.ml \ - $(OBJDIR)/l2lExpandArrays.mli \ - $(OBJDIR)/l2lExpandArrays.ml \ - $(OBJDIR)/l2lExpandNodes.mli \ - $(OBJDIR)/l2lExpandNodes.ml \ - $(OBJDIR)/l2lExpandMetaOp.ml \ - $(OBJDIR)/l2lExpandMetaOp.mli \ - $(OBJDIR)/l2lRmPoly.mli \ - $(OBJDIR)/l2lRmPoly.ml \ - $(OBJDIR)/l2lAliasType.mli \ - $(OBJDIR)/l2lAliasType.ml \ - $(OBJDIR)/l2lSplit.mli \ - $(OBJDIR)/l2lSplit.ml \ - $(OBJDIR)/licTab.ml \ - $(OBJDIR)/licTab.mli \ - $(OBJDIR)/compile.mli \ - $(OBJDIR)/compile.ml \ - -SOURCES = \ - $(OBJDIR)/lv6version.ml \ - $(COMON_SOURCES) \ - $(COMPILER_SOURCES) \ - $(OBJDIR)/main.ml - -LDBG_SOURCES = \ - $(OBJDIR)/lv6version.ml \ - $(COMPILER_SOURCES) - -# -# Be sure to build those files before doing something else -# since they are needed by $(RESULT) -PRE_TARGETS=$(OBJDIR)/lv6version.ml - -NOMLI_SOURCES=$(filter %.ml %.mll %.mly, $(SOURCES)) - -NOMLY_SOURCES=$(SOURCES:.mly=.ml) -MLONLY_SOURCES=$(NOMLY_SOURCES:.mll=.ml) +# oasis entry points -dot: - ocamldoc -I $(OBJDIR) $(MLONLY_SOURCES) -d ocamldoc -dot -dot-reduce - dot -Tpdf ocamldoc.out > lus2lic.pdf - ocamldoc -I $(OBJDIR) $(MLONLY_SOURCES) -d ocamldoc -dot -dot-reduce -dot-types - dot -Tpdf ocamldoc.out > lus2lic-types.pdf - xpdf lus2lic.pdf - xpdf lus2lic-types.pdf +build: setup.data setup.ml src/lv6version.ml + ocaml setup.ml -build -html: - ocamldoc -I $(OBJDIR) $(MLONLY_SOURCES) -d ocamldoc -html -keep-code -nomli: - rm $(OBJDIR)/*.mli +setup.ml:_oasis + oasis setup -debug: nomli dc +PROF=--enable-profile +PROF=--disable-profile +setup.data:configure +configure: setup.ml + ocaml setup.ml -configure $(PROF) --prefix $(LUSTREV6_PATH) --exec-prefix $(LUSTREV6_PATH)/$(HOSTTYPE) -ln: $(OBJDIR) $(SOURCES) +test: build + cd test; make test -doit: ln nc +install: + ocaml setup.ml -install -include $(OCAMLMAKEFILE) +uninstall: + ocaml setup.ml -uninstall -# Specific rule (lv6version) +reinstall: + ocaml setup.ml -reinstall -.PRECIOUS: $(OBJDIR)/lv6version.ml +clean: + ocaml setup.ml -clean -$(OBJDIR)/lv6version.ml: Makefile - echo "(** Automatically gen erated from Makefile *) " > $@ - echo "let tool = \"lus2lic\"" >> $@ - echo "let branch = \"$(shell utils/get_branch_name)\"" >> $@ - echo "let commit = \"$(shell utils/get_commit_number)\"" >> $@ - echo "let sha_1 = \"$(shell utils/get_sha_1)"\">> $@ - echo "let str = (branch ^ \".\" ^ commit ^ \" (\" ^ sha_1 ^ \")\")">> $@ - echo "let maintainer = \"jahier@imag.fr\"">> $@ +distclean: + ocaml setup.ml -distclean + +include ./Makefile.version -all: nc -lus2lic: - make all - make test +####################################################################################### # TEST, NON REGR. ETC... TESTDIR=./test .PHONY: diff test log -dif: - git --no-pager diff --color-words - -diff: - rm -f diff_lv6.diff; git diff --ignore-all-space > diff_lv6.diff ; ls -l diff_lv6.diff - -OTAGS=$(HOME)/bin/otags -tags: - $(OTAGS) -v $(shell $(OCAMLC) -where)/*.mli src/*.ml - -log: - rm -f lv6.log; git log > lv6.log test_nc: cd $(TESTDIR) ; make test ; cd $(curdir) -Clean: - rm -rf $(OBJDIR) - test: - cd $(TESTDIR) - make + cd $(TESTDIR) ; make ; make time cd $(curdir) +# XXX use rdbg -lurette !!! +# Compile and copy lurrettop from here because +# (1) lurettetop uses lus2lic source (it embeds the V6 interpreter) +# (2) the tests performed here uses lurettetop... +test/lurettetop: ltop + cp ~/lurette/bin/lurettetop test -ci: $(OBJDIR)/lv6version.ml - make test && git commit -F log && rm -f $(OBJDIR)/lv6version.ml - -cia: $(OBJDIR)/lv6version.ml - git commit -a -F log && rm -f $(OBJDIR)/lv6version.ml - - -amend: - git commit -a -F log --amend && rm -f $(OBJDIR)/lv6version.ml - -push: - git push git+ssh://jahier@scm.forge.imag.fr/var/lib/gforge/chroot/scmrepos/git/lustre/lus2lic.git - -pull: - git pull git+ssh://jahier@scm.forge.imag.fr/var/lib/gforge/chroot/scmrepos/git/lustre/lus2lic.git - +ltop: + cd ~/lurette/source/ ; make ltop; make cp +# copy (lus2lic -> lurette) the shared source to the lurette directory scp: chmod u+w ../lurette/source/lus2lic/* cp $(LDBG_SOURCES) ../lurette/source/lus2lic/ chmod u-w ../lurette/source/lus2lic/* -# Keep those files in sync as they are shared +# Keep those files in sync as they are shared with lurette # and prevent their modification +# cp lurette -> lus2lic +LURETTEDIR=~/lurette cp_comon_file: - chmod u+w src/data.ml - chmod u+w src/data.mli - chmod u+w src/rif_base.ml - chmod u+w src/rif_base.mli - chmod u+w src/genlex.ml - chmod u+w src/genlex.mli chmod u+w src/verbose.ml chmod u+w src/verbose.mli - chmod u+w src/expr.ml - chmod u+w src/event.ml - chmod u+w src/failure.ml - cp ~/lurette/source/common/data.ml src/ - cp ~/lurette/source/common/data.mli src/ - cp ~/lurette/source/common/rif_base.ml src/ - cp ~/lurette/source/common/rif_base.mli src/ - cp ~/lurette/source/common/genlex.ml src/ - cp ~/lurette/source/common/genlex.mli src/ - cp ~/lurette/source/Lutin/verbose.ml src/ - cp ~/lurette/source/Lutin/verbose.mli src/ - cp ~/lurette/source/Lurettetop/expr.ml src/ - cp ~/lurette/source/Lurettetop/event.ml src/ - cp ~/lurette/source/Lurettetop/failure.ml src/ - chmod u-w src/data.ml - chmod u-w src/data.mli - chmod u-w src/rif_base.ml - chmod u-w src/rif_base.mli - chmod u-w src/genlex.ml - chmod u-w src/genlex.mli + cp $(LURETTEDIR)/source/Lutin/verbose.ml src/ + cp $(LURETTEDIR)/source/Lutin/verbose.mli src/ chmod u-w src/verbose.ml chmod u-w src/verbose.mli - chmod u-w src/expr.ml - chmod u-w src/event.ml - chmod u-w src/failure.ml + +####################################################################################### +# git entry points + +ci: + git commit -F log && rm -f src/lv6version.ml + +cia: src/lv6version.ml + git commit -a -F log && rm -f src/lv6version.ml + + +amend: + git commit -a -F log --amend && rm -f src/lv6version.ml + +push: + git push git+ssh://$(USER)scm.forge.imag.fr/var/lib/gforge/chroot/scmrepos/git/lustre/lus2lic.git + +pull: + git pull git+ssh://$(USER)@scm.forge.imag.fr/var/lib/gforge/chroot/scmrepos/git/lustre/lus2lic.git + +####################################################################################### +# misc + +show: + git log --reverse --pretty=oneline | nl + +dot: + ocamldoc src/*.ml -d ocamldoc -dot -dot-reduce + dot -Tpdf ocamldoc.out > lus2lic.pdf + ocamldoc src/*.ml -d ocamldoc -dot -dot-reduce -dot-types + dot -Tpdf ocamldoc.out > lus2lic-types.pdf + xpdf lus2lic.pdf + xpdf lus2lic-types.pdf + +html: + ocamldoc -I src/*.ml -d ocamldoc -html -keep-code + +debug: nomli dc + +all: nc +lus2lic: + make all + make test + +dif: + git --no-pager diff --color-words + +diff: + rm -f diff_lv6.diff; git diff --ignore-all-space > diff_lv6.diff ; ls -l diff_lv6.diff + +OTAGS=otags +tags: + $(OTAGS) -v $(shell ocamlc -where)/*.mli src/*.ml + +log: + rm -f lv6.log; git log > lv6.log diff --git a/Makefile.common b/Makefile.common deleted file mode 100644 index 27680ef2a48f09ff8674c95c5c17be026a214487..0000000000000000000000000000000000000000 --- a/Makefile.common +++ /dev/null @@ -1,34 +0,0 @@ - -curdir=$(shell pwd) - - -OBJDIR=./obj$(HOSTTYPE) -SRCDIR=./src - -LN=ln -s -$(OBJDIR)/% : $(SRCDIR)/% - rm -f $@; cd $(OBJDIR) && $(LN) ../$(SRCDIR)/$* . && cd $(curdir) - -$(OBJDIR): - mkdir $(OBJDIR) - -OCAMLMAKEFILE = ./OCamlMakefile -RESULT=$(OBJDIR)/lus2lic$(EXE) - -LIBS = str unix nums - -OCAMLC=ocamlc -OCAMLOPT=ocamlopt - -ifeq ($(HOSTTYPE),win32) - OCAMLC=/usr/i586-mingw32msvc/bin/ocamlc - OCAMLOPT=/usr/i586-mingw32msvc/bin/ocamlopt - OCAMLDEP=/usr/i586-mingw32msvc/bin/ocamldep - OCAMLRUN=/usr/i586-mingw32msvc/bin/ocamlrun - OCAMLLIB = `/usr/i586-mingw32msvc/bin/ocamlc -where` -endif - -ifeq ($(HOSTTYPE),cygwin) -CFLAGS=-mno-cygwin -endif - diff --git a/Makefile.version b/Makefile.version new file mode 100644 index 0000000000000000000000000000000000000000..baeb0d92343a3b82c60dba5bfc38377a5ee428b6 --- /dev/null +++ b/Makefile.version @@ -0,0 +1,20 @@ + +# can oasis do all this stuff? +SHA:=`git log -1 --pretty=format:"%h"` +COMMIT_NB:=`git log --pretty=oneline | wc -l` + +VERSION:=1.0.$(COMMIT_NB) + +gen_version: + rm -f src/lv6version.ml + + +src/lv6version.ml: Makefile + echo "(** Automatically generated from Makefile *) " > $@ + echo "let tool = \"lus2lic\"" >> $@ + echo "let branch = \"$(shell utils/get_branch_name)\"" >> $@ + echo "let commit = \"$(shell utils/get_commit_number)\"" >> $@ + echo "let sha_1 = \"$(shell utils/get_sha_1)"\">> $@ + echo "let str = (branch ^ \".\" ^ commit ^ \" (\" ^ sha_1 ^ \")\")">> $@ + echo "let maintainer = \"jahier@imag.fr\"">> $@ + diff --git a/OCamlMakefile b/OCamlMakefile deleted file mode 100644 index e9deb247da8176127583035f864c801fd5a47f4f..0000000000000000000000000000000000000000 --- a/OCamlMakefile +++ /dev/null @@ -1,1277 +0,0 @@ -########################################################################### -# OCamlMakefile -# Copyright (C) 1999- Markus Mottl -# -# For updates see: -# http://www.ocaml.info/home/ocaml_sources.html -# -########################################################################### - -# Modified by damien for .glade.ml compilation - -# Set these variables to the names of the sources to be processed and -# the result variable. Order matters during linkage! - -ifndef SOURCES - SOURCES := foo.ml -endif -export SOURCES - -ifndef RES_CLIB_SUF - RES_CLIB_SUF := _stubs -endif -export RES_CLIB_SUF - -ifndef RESULT - RESULT := foo -endif -export RESULT := $(strip $(RESULT)) - -export LIB_PACK_NAME - -ifndef DOC_FILES - DOC_FILES := $(filter %.mli, $(SOURCES)) -endif -export DOC_FILES -FIRST_DOC_FILE := $(firstword $(DOC_FILES)) - -export BCSUFFIX -export NCSUFFIX - -ifndef TOPSUFFIX - TOPSUFFIX := .top -endif -export TOPSUFFIX - -# Eventually set include- and library-paths, libraries to link, -# additional compilation-, link- and ocamlyacc-flags -# Path- and library information needs not be written with "-I" and such... -# Define THREADS if you need it, otherwise leave it unset (same for -# USE_CAMLP4)! - -export THREADS -export VMTHREADS -export ANNOTATE -export USE_CAMLP4 - -export INCDIRS -export LIBDIRS -export EXTLIBDIRS -export RESULTDEPS -export OCAML_DEFAULT_DIRS - -export LIBS -export CLIBS -export CFRAMEWORKS - -export OCAMLFLAGS -export OCAMLNCFLAGS -export OCAMLBCFLAGS - -export OCAMLLDFLAGS -export OCAMLNLDFLAGS -export OCAMLBLDFLAGS - -export OCAMLMKLIB_FLAGS - -ifndef OCAMLCPFLAGS - OCAMLCPFLAGS := a -endif -export OCAMLCPFLAGS - -ifndef DOC_DIR - DOC_DIR := doc -endif -export DOC_DIR - -export PPFLAGS - -export LFLAGS -export YFLAGS -export IDLFLAGS - -export OCAMLDOCFLAGS - -export OCAMLFIND_INSTFLAGS - -export DVIPSFLAGS - -export STATIC - -# Add a list of optional trash files that should be deleted by "make clean" -export TRASH - -ECHO := echo - -ifdef REALLY_QUIET - export REALLY_QUIET - ECHO := true - LFLAGS := $(LFLAGS) -q - YFLAGS := $(YFLAGS) -q -endif - -#################### variables depending on your OCaml-installation - -SYSTEM := $(shell ocamlc -config 2>/dev/null | grep system | sed 's/system: //') - # This may be - # - mingw - # - win32 - # - cygwin - # - some other string means Unix - # - empty means ocamlc does not support -config - -ifeq ($(SYSTEM),mingw) - MINGW=1 -endif -ifeq ($(SYSTEM),win32) - MSVC=1 -endif - -ifdef MINGW - export MINGW - WIN32 := 1 - # We are compiling with cygwin tools: - CFLAGS_WIN32 := -mno-cygwin - # The default value 'cc' makes 'ocamlc -cc "cc"' raises the error 'The - # NTVDM CPU has encountered an illegal instruction'. - CC := gcc - # The OCaml C header files use this flag: - CFLAGS += -D__MINGW32__ -endif -ifdef MSVC - export MSVC - WIN32 := 1 - ifndef STATIC - CPPFLAGS_WIN32 := -DCAML_DLL - endif - CFLAGS_WIN32 += -nologo - EXT_OBJ := obj - EXT_LIB := lib - ifeq ($(CC),gcc) - # work around GNU Make default value - ifdef THREADS - CC := cl -MT - else - CC := cl - endif - endif - ifeq ($(CXX),g++) - # work around GNU Make default value - CXX := $(CC) - endif - CFLAG_O := -Fo -endif -ifdef WIN32 - EXT_CXX := cpp - EXE := .exe -endif - -ifndef EXT_OBJ - EXT_OBJ := o -endif -ifndef EXT_LIB - EXT_LIB := a -endif -ifndef EXT_CXX - EXT_CXX := cc -endif -ifndef EXE - EXE := # empty -endif -ifndef CFLAG_O - CFLAG_O := -o # do not delete this comment (preserves trailing whitespace)! -endif - -export CC -export CXX -export CFLAGS -export CXXFLAGS -export LDFLAGS -export CPPFLAGS - -ifndef RPATH_FLAG - ifdef ELF_RPATH_FLAG - RPATH_FLAG := $(ELF_RPATH_FLAG) - else - RPATH_FLAG := -R - endif -endif -export RPATH_FLAG - -ifndef MSVC -ifndef PIC_CFLAGS - PIC_CFLAGS := -fPIC -endif -ifndef PIC_CPPFLAGS - PIC_CPPFLAGS := -DPIC -endif -endif - -export PIC_CFLAGS -export PIC_CPPFLAGS - -BCRESULT := $(addsuffix $(BCSUFFIX), $(RESULT)) -NCRESULT := $(addsuffix $(NCSUFFIX), $(RESULT)) -TOPRESULT := $(addsuffix $(TOPSUFFIX), $(RESULT)) - -ifndef OCAMLFIND - OCAMLFIND := ocamlfind -endif -export OCAMLFIND - -ifndef OCAMLC - OCAMLC := ocamlc -endif -export OCAMLC - -ifndef OCAMLOPT - OCAMLOPT := ocamlopt -endif -export OCAMLOPT - -ifndef OCAMLMKTOP - OCAMLMKTOP := ocamlmktop -endif -export OCAMLMKTOP - -ifndef OCAMLCP - OCAMLCP := ocamlcp -endif -export OCAMLCP - -ifndef OCAMLDEP - OCAMLDEP := ocamldep -endif -export OCAMLDEP - -ifndef OCAMLLEX - OCAMLLEX := ocamllex -endif -export OCAMLLEX - -ifndef OCAMLYACC - OCAMLYACC := ocamlyacc -endif -export OCAMLYACC - -ifndef OCAMLMKLIB - OCAMLMKLIB := ocamlmklib -endif -export OCAMLMKLIB - -ifndef OCAML_GLADECC - OCAML_GLADECC := lablgladecc2 -endif -export OCAML_GLADECC - -ifndef OCAML_GLADECC_FLAGS - OCAML_GLADECC_FLAGS := -endif -export OCAML_GLADECC_FLAGS - -ifndef CAMELEON_REPORT - CAMELEON_REPORT := report -endif -export CAMELEON_REPORT - -ifndef CAMELEON_REPORT_FLAGS - CAMELEON_REPORT_FLAGS := -endif -export CAMELEON_REPORT_FLAGS - -ifndef CAMELEON_ZOGGY - CAMELEON_ZOGGY := camlp4o pa_zog.cma pr_o.cmo -endif -export CAMELEON_ZOGGY - -ifndef CAMELEON_ZOGGY_FLAGS - CAMELEON_ZOGGY_FLAGS := -endif -export CAMELEON_ZOGGY_FLAGS - -ifndef OXRIDL - OXRIDL := oxridl -endif -export OXRIDL - -ifndef CAMLIDL - CAMLIDL := camlidl -endif -export CAMLIDL - -ifndef CAMLIDLDLL - CAMLIDLDLL := camlidldll -endif -export CAMLIDLDLL - -ifndef NOIDLHEADER - MAYBE_IDL_HEADER := -header -endif -export NOIDLHEADER - -export NO_CUSTOM - -ifndef CAMLP4 - CAMLP4 := camlp4 -endif -export CAMLP4 - -ifndef REAL_OCAMLFIND - ifdef PACKS - ifndef CREATE_LIB - ifdef THREADS - PACKS += threads - endif - endif - empty := - space := $(empty) $(empty) - comma := , - ifdef PREDS - PRE_OCAML_FIND_PREDICATES := $(subst $(space),$(comma),$(PREDS)) - PRE_OCAML_FIND_PACKAGES := $(subst $(space),$(comma),$(PACKS)) - OCAML_FIND_PREDICATES := -predicates $(PRE_OCAML_FIND_PREDICATES) - # OCAML_DEP_PREDICATES := -syntax $(PRE_OCAML_FIND_PREDICATES) - OCAML_FIND_PACKAGES := $(OCAML_FIND_PREDICATES) -package $(PRE_OCAML_FIND_PACKAGES) - OCAML_DEP_PACKAGES := $(OCAML_DEP_PREDICATES) -package $(PRE_OCAML_FIND_PACKAGES) - else - OCAML_FIND_PACKAGES := -package $(subst $(space),$(comma),$(PACKS)) - OCAML_DEP_PACKAGES := - endif - OCAML_FIND_LINKPKG := -linkpkg - REAL_OCAMLFIND := $(OCAMLFIND) - endif -endif - -export OCAML_FIND_PACKAGES -export OCAML_DEP_PACKAGES -export OCAML_FIND_LINKPKG -export REAL_OCAMLFIND - -ifndef OCAMLDOC - OCAMLDOC := ocamldoc -endif -export OCAMLDOC - -ifndef LATEX - LATEX := latex -endif -export LATEX - -ifndef DVIPS - DVIPS := dvips -endif -export DVIPS - -ifndef PS2PDF - PS2PDF := ps2pdf -endif -export PS2PDF - -ifndef OCAMLMAKEFILE - OCAMLMAKEFILE := OCamlMakefile -endif -export OCAMLMAKEFILE - -ifndef OCAMLLIBPATH - OCAMLLIBPATH := \ - $(shell $(OCAMLC) 2>/dev/null -where || echo /usr/local/lib/ocaml) -endif -export OCAMLLIBPATH - -ifndef OCAML_LIB_INSTALL - OCAML_LIB_INSTALL := $(OCAMLLIBPATH)/contrib -endif -export OCAML_LIB_INSTALL - -########################################################################### - -#################### change following sections only if -#################### you know what you are doing! - -# delete target files when a build command fails -.PHONY: .DELETE_ON_ERROR -.DELETE_ON_ERROR: - -# for pedants using "--warn-undefined-variables" -export MAYBE_IDL -export REAL_RESULT -export CAMLIDLFLAGS -export THREAD_FLAG -export RES_CLIB -export MAKEDLL -export ANNOT_FLAG -export C_OXRIDL -export SUBPROJS -export CFLAGS_WIN32 -export CPPFLAGS_WIN32 - -INCFLAGS := - -SHELL := /bin/sh - -MLDEPDIR := ._d -BCDIDIR := ._bcdi -NCDIDIR := ._ncdi - -FILTER_EXTNS := %.mli %.ml %.mll %.mly %.idl %.oxridl %.c %.m %.$(EXT_CXX) %.rep %.zog %.glade - -FILTERED := $(filter $(FILTER_EXTNS), $(SOURCES)) -SOURCE_DIRS := $(filter-out ./, $(sort $(dir $(FILTERED)))) - -FILTERED_REP := $(filter %.rep, $(FILTERED)) -DEP_REP := $(FILTERED_REP:%.rep=$(MLDEPDIR)/%.d) -AUTO_REP := $(FILTERED_REP:.rep=.ml) - -FILTERED_ZOG := $(filter %.zog, $(FILTERED)) -DEP_ZOG := $(FILTERED_ZOG:%.zog=$(MLDEPDIR)/%.d) -AUTO_ZOG := $(FILTERED_ZOG:.zog=.ml) - -FILTERED_GLADE := $(filter %.glade, $(FILTERED)) -DEP_GLADE := $(FILTERED_GLADE:%.glade=$(MLDEPDIR)/%.d) -AUTO_GLADE := $(FILTERED_GLADE:.glade=.ml) - -FILTERED_ML := $(filter %.ml, $(FILTERED)) -DEP_ML := $(FILTERED_ML:%.ml=$(MLDEPDIR)/%.d) - -FILTERED_MLI := $(filter %.mli, $(FILTERED)) -DEP_MLI := $(FILTERED_MLI:.mli=.di) - -FILTERED_MLL := $(filter %.mll, $(FILTERED)) -DEP_MLL := $(FILTERED_MLL:%.mll=$(MLDEPDIR)/%.d) -AUTO_MLL := $(FILTERED_MLL:.mll=.ml) - -FILTERED_MLY := $(filter %.mly, $(FILTERED)) -DEP_MLY := $(FILTERED_MLY:%.mly=$(MLDEPDIR)/%.d) $(FILTERED_MLY:.mly=.di) -AUTO_MLY := $(FILTERED_MLY:.mly=.mli) $(FILTERED_MLY:.mly=.ml) - -FILTERED_IDL := $(filter %.idl, $(FILTERED)) -DEP_IDL := $(FILTERED_IDL:%.idl=$(MLDEPDIR)/%.d) $(FILTERED_IDL:.idl=.di) -C_IDL := $(FILTERED_IDL:%.idl=%_stubs.c) -ifndef NOIDLHEADER - C_IDL += $(FILTERED_IDL:.idl=.h) -endif -OBJ_C_IDL := $(FILTERED_IDL:%.idl=%_stubs.$(EXT_OBJ)) -AUTO_IDL := $(FILTERED_IDL:.idl=.mli) $(FILTERED_IDL:.idl=.ml) $(C_IDL) - -FILTERED_OXRIDL := $(filter %.oxridl, $(FILTERED)) -DEP_OXRIDL := $(FILTERED_OXRIDL:%.oxridl=$(MLDEPDIR)/%.d) $(FILTERED_OXRIDL:.oxridl=.di) -AUTO_OXRIDL := $(FILTERED_OXRIDL:.oxridl=.mli) $(FILTERED_OXRIDL:.oxridl=.ml) $(C_OXRIDL) - -FILTERED_C_CXX := $(filter %.c %.m %.$(EXT_CXX), $(FILTERED)) -OBJ_C_CXX := $(FILTERED_C_CXX:.c=.$(EXT_OBJ)) -OBJ_C_CXX := $(OBJ_C_CXX:.m=.$(EXT_OBJ)) -OBJ_C_CXX := $(OBJ_C_CXX:.$(EXT_CXX)=.$(EXT_OBJ)) - -PRE_TARGETS += $(AUTO_MLL) $(AUTO_MLY) $(AUTO_IDL) $(AUTO_OXRIDL) $(AUTO_ZOG) $(AUTO_REP) $(AUTO_GLADE) - -ALL_DEPS := $(DEP_ML) $(DEP_MLI) $(DEP_MLL) $(DEP_MLY) $(DEP_IDL) $(DEP_OXRIDL) $(DEP_ZOG) $(DEP_REP) $(DEP_GLADE) - -MLDEPS := $(filter %.d, $(ALL_DEPS)) -MLIDEPS := $(filter %.di, $(ALL_DEPS)) -BCDEPIS := $(MLIDEPS:%.di=$(BCDIDIR)/%.di) -NCDEPIS := $(MLIDEPS:%.di=$(NCDIDIR)/%.di) - -ALLML := $(filter %.mli %.ml %.mll %.mly %.idl %.oxridl %.rep %.zog %.glade, $(FILTERED)) - -IMPLO_INTF := $(ALLML:%.mli=%.mli.__) -IMPLO_INTF := $(foreach file, $(IMPLO_INTF), \ - $(basename $(file)).cmi $(basename $(file)).cmo) -IMPLO_INTF := $(filter-out %.mli.cmo, $(IMPLO_INTF)) -IMPLO_INTF := $(IMPLO_INTF:%.mli.cmi=%.cmi) - -IMPLX_INTF := $(IMPLO_INTF:.cmo=.cmx) - -INTF := $(filter %.cmi, $(IMPLO_INTF)) -IMPL_CMO := $(filter %.cmo, $(IMPLO_INTF)) -IMPL_CMX := $(IMPL_CMO:.cmo=.cmx) -IMPL_ASM := $(IMPL_CMO:.cmo=.asm) -IMPL_S := $(IMPL_CMO:.cmo=.s) - -OBJ_LINK := $(OBJ_C_IDL) $(OBJ_C_CXX) -OBJ_FILES := $(IMPL_CMO:.cmo=.$(EXT_OBJ)) $(OBJ_LINK) - -EXECS := $(addsuffix $(EXE), \ - $(sort $(TOPRESULT) $(BCRESULT) $(NCRESULT))) -ifdef WIN32 - EXECS += $(BCRESULT).dll $(NCRESULT).dll -endif - -CLIB_BASE := $(RESULT)$(RES_CLIB_SUF) -ifneq ($(strip $(OBJ_LINK)),) - RES_CLIB := lib$(CLIB_BASE).$(EXT_LIB) -endif - -ifdef WIN32 -DLLSONAME := dll$(CLIB_BASE).dll -else -DLLSONAME := dll$(CLIB_BASE).so -endif - -NONEXECS := $(INTF) $(IMPL_CMO) $(IMPL_CMX) $(IMPL_ASM) $(IMPL_S) \ - $(OBJ_FILES) $(PRE_TARGETS) $(BCRESULT).cma $(NCRESULT).cmxa \ - $(NCRESULT).$(EXT_LIB) $(BCRESULT).cmi $(BCRESULT).cmo \ - $(NCRESULT).cmi $(NCRESULT).cmx $(NCRESULT).$(EXT_OBJ) \ - $(RES_CLIB) $(IMPL_CMO:.cmo=.annot) \ - $(LIB_PACK_NAME).cmi $(LIB_PACK_NAME).cmo $(LIB_PACK_NAME).cmx \ - $(LIB_PACK_NAME).$(EXT_OBJ) - -ifndef STATIC - NONEXECS += $(DLLSONAME) -endif - -ifndef LIBINSTALL_FILES - LIBINSTALL_FILES := $(RESULT).mli $(RESULT).cmi $(RESULT).cma \ - $(RESULT).cmxa $(RESULT).$(EXT_LIB) $(RES_CLIB) - ifndef STATIC - ifneq ($(strip $(OBJ_LINK)),) - LIBINSTALL_FILES += $(DLLSONAME) - endif - endif -endif - -export LIBINSTALL_FILES - -ifdef WIN32 - # some extra stuff is created while linking DLLs - NONEXECS += $(BCRESULT).$(EXT_LIB) $(BCRESULT).exp $(NCRESULT).exp $(CLIB_BASE).exp $(CLIB_BASE).lib -endif - -TARGETS := $(EXECS) $(NONEXECS) - -# If there are IDL-files -ifneq ($(strip $(FILTERED_IDL)),) - MAYBE_IDL := -cclib -lcamlidl -endif - -ifdef USE_CAMLP4 - CAMLP4PATH := \ - $(shell $(CAMLP4) -where 2>/dev/null || echo /usr/local/lib/camlp4) - INCFLAGS := -I $(CAMLP4PATH) - CINCFLAGS := -I$(CAMLP4PATH) -endif - -DINCFLAGS := $(INCFLAGS) $(SOURCE_DIRS:%=-I %) $(OCAML_DEFAULT_DIRS:%=-I %) -INCFLAGS := $(DINCFLAGS) $(INCDIRS:%=-I %) -CINCFLAGS += $(SOURCE_DIRS:%=-I%) $(INCDIRS:%=-I%) $(OCAML_DEFAULT_DIRS:%=-I%) - -ifndef MSVC - CLIBFLAGS += $(SOURCE_DIRS:%=-L%) $(LIBDIRS:%=-L%) \ - $(EXTLIBDIRS:%=-L%) $(OCAML_DEFAULT_DIRS:%=-L%) - - ifeq ($(ELF_RPATH), yes) - CLIBFLAGS += $(EXTLIBDIRS:%=-Wl,$(RPATH_FLAG)%) - endif -endif - -ifndef PROFILING - INTF_OCAMLC := $(OCAMLC) -else - ifndef THREADS - INTF_OCAMLC := $(OCAMLCP) -p $(OCAMLCPFLAGS) - else - # OCaml does not support profiling byte code - # with threads (yet), therefore we force an error. - ifndef REAL_OCAMLC - $(error Profiling of multithreaded byte code not yet supported by OCaml) - endif - INTF_OCAMLC := $(OCAMLC) - endif -endif - -ifndef MSVC - COMMON_LDFLAGS := $(LDFLAGS:%=-ccopt %) $(SOURCE_DIRS:%=-ccopt -L%) \ - $(LIBDIRS:%=-ccopt -L%) $(EXTLIBDIRS:%=-ccopt -L%) \ - $(EXTLIBDIRS:%=-ccopt -Wl $(OCAML_DEFAULT_DIRS:%=-ccopt -L%)) - - ifeq ($(ELF_RPATH),yes) - COMMON_LDFLAGS += $(EXTLIBDIRS:%=-ccopt -Wl,$(RPATH_FLAG)%) - endif -else - COMMON_LDFLAGS := -ccopt "/link -NODEFAULTLIB:LIBC $(LDFLAGS:%=%) $(SOURCE_DIRS:%=-LIBPATH:%) \ - $(LIBDIRS:%=-LIBPATH:%) $(EXTLIBDIRS:%=-LIBPATH:%) \ - $(OCAML_DEFAULT_DIRS:%=-LIBPATH:%) " -endif - -CLIBS_OPTS := $(CLIBS:%=-cclib -l%) $(CFRAMEWORKS:%=-cclib '-framework %') -ifdef MSVC - ifndef STATIC - # MSVC libraries do not have 'lib' prefix - CLIBS_OPTS := $(CLIBS:%=-cclib %.lib) - endif -endif - -ifneq ($(strip $(OBJ_LINK)),) - ifdef CREATE_LIB - OBJS_LIBS := -cclib -l$(CLIB_BASE) $(CLIBS_OPTS) $(MAYBE_IDL) - else - OBJS_LIBS := $(OBJ_LINK) $(CLIBS_OPTS) $(MAYBE_IDL) - endif -else - OBJS_LIBS := $(CLIBS_OPTS) $(MAYBE_IDL) -endif - -ifdef LIB_PACK_NAME - FOR_PACK_NAME := $(shell echo $(LIB_PACK_NAME) | awk '{print toupper(substr($$0,1,1))substr($$0,2)}') -endif - -# If we have to make byte-code -ifndef REAL_OCAMLC - BYTE_OCAML := y - - # EXTRADEPS is added dependencies we have to insert for all - # executable files we generate. Ideally it should be all of the - # libraries we use, but it's hard to find the ones that get searched on - # the path since I don't know the paths built into the compiler, so - # just include the ones with slashes in their names. - EXTRADEPS := $(addsuffix .cma,$(foreach i,$(LIBS),$(if $(findstring /,$(i)),$(i)))) - - - ifndef LIB_PACK_NAME - SPECIAL_OCAMLFLAGS := $(OCAMLBCFLAGS) - else - SPECIAL_OCAMLFLAGS := -for-pack $(FOR_PACK_NAME) $(OCAMLBCFLAGS) - endif - - REAL_OCAMLC := $(INTF_OCAMLC) - - REAL_IMPL := $(IMPL_CMO) - REAL_IMPL_INTF := $(IMPLO_INTF) - IMPL_SUF := .cmo - - DEPFLAGS := - MAKE_DEPS := $(MLDEPS) $(BCDEPIS) - - ifdef CREATE_LIB - override CFLAGS := $(PIC_CFLAGS) $(CFLAGS) - override CPPFLAGS := $(PIC_CPPFLAGS) $(CPPFLAGS) - ifndef STATIC - ifneq ($(strip $(OBJ_LINK)),) - MAKEDLL := $(DLLSONAME) - ALL_LDFLAGS := -dllib $(DLLSONAME) - endif - endif - endif - - ifndef NO_CUSTOM - ifneq "$(strip $(OBJ_LINK) $(THREADS) $(MAYBE_IDL) $(CLIBS) $(CFRAMEWORKS))" "" - ALL_LDFLAGS += -custom - endif - endif - - ALL_LDFLAGS += $(INCFLAGS) $(OCAMLLDFLAGS) $(OCAMLBLDFLAGS) \ - $(COMMON_LDFLAGS) $(LIBS:%=%.cma) - CAMLIDLDLLFLAGS := - - ifdef THREADS - ifdef VMTHREADS - THREAD_FLAG := -vmthread - else - THREAD_FLAG := -thread - endif - ALL_LDFLAGS := $(THREAD_FLAG) $(ALL_LDFLAGS) - ifndef CREATE_LIB - ifndef REAL_OCAMLFIND - ALL_LDFLAGS := unix.cma threads.cma $(ALL_LDFLAGS) - endif - endif - endif - -# we have to make native-code -else - EXTRADEPS := $(addsuffix .cmxa,$(foreach i,$(LIBS),$(if $(findstring /,$(i)),$(i)))) - ifndef PROFILING - SPECIAL_OCAMLFLAGS := $(OCAMLNCFLAGS) - PLDFLAGS := - else - SPECIAL_OCAMLFLAGS := -p $(OCAMLNCFLAGS) - PLDFLAGS := -p - endif - - ifndef LIB_PACK_NAME - SPECIAL_OCAMLFLAGS := $(OCAMLNCFLAGS) - else - SPECIAL_OCAMLFLAGS := -for-pack $(FOR_PACK_NAME) $(OCAMLNCFLAGS) - endif - REAL_IMPL := $(IMPL_CMX) - REAL_IMPL_INTF := $(IMPLX_INTF) - IMPL_SUF := .cmx - - override CPPFLAGS := -DNATIVE_CODE $(CPPFLAGS) - - DEPFLAGS := -native - MAKE_DEPS := $(MLDEPS) $(NCDEPIS) - - ALL_LDFLAGS := $(PLDFLAGS) $(INCFLAGS) $(OCAMLLDFLAGS) \ - $(OCAMLNLDFLAGS) $(COMMON_LDFLAGS) - CAMLIDLDLLFLAGS := -opt - - ifndef CREATE_LIB - ALL_LDFLAGS += $(LIBS:%=%.cmxa) - else - override CFLAGS := $(PIC_CFLAGS) $(CFLAGS) - override CPPFLAGS := $(PIC_CPPFLAGS) $(CPPFLAGS) - endif - - ifdef THREADS - THREAD_FLAG := -thread - ALL_LDFLAGS := $(THREAD_FLAG) $(ALL_LDFLAGS) - ifndef CREATE_LIB - ifndef REAL_OCAMLFIND - ALL_LDFLAGS := unix.cmxa threads.cmxa $(ALL_LDFLAGS) - endif - endif - endif -endif - -export MAKE_DEPS - -ifdef ANNOTATE - ANNOT_FLAG := -dtypes -else -endif - -ALL_OCAMLCFLAGS := $(THREAD_FLAG) $(ANNOT_FLAG) $(OCAMLFLAGS) \ - $(INCFLAGS) $(SPECIAL_OCAMLFLAGS) - -ifdef make_deps - -include $(MAKE_DEPS) - PRE_TARGETS := -endif - -########################################################################### -# USER RULES - -# Call "OCamlMakefile QUIET=" to get rid of all of the @'s. -QUIET=@ - -# generates byte-code (default) -byte-code: $(PRE_TARGETS) - $(QUIET)$(MAKE) -r -f $(OCAMLMAKEFILE) $(BCRESULT) \ - REAL_RESULT="$(BCRESULT)" make_deps=yes -bc: byte-code - -byte-code-nolink: $(PRE_TARGETS) - $(QUIET)$(MAKE) -r -f $(OCAMLMAKEFILE) nolink \ - REAL_RESULT="$(BCRESULT)" make_deps=yes -bcnl: byte-code-nolink - -top: $(PRE_TARGETS) - $(QUIET)$(MAKE) -r -f $(OCAMLMAKEFILE) $(TOPRESULT) \ - REAL_RESULT="$(BCRESULT)" make_deps=yes - -# generates native-code - -native-code: $(PRE_TARGETS) - $(QUIET)$(MAKE) -r -f $(OCAMLMAKEFILE) $(NCRESULT) \ - REAL_RESULT="$(NCRESULT)" \ - REAL_OCAMLC="$(OCAMLOPT)" \ - make_deps=yes -nc: native-code - -native-code-nolink: $(PRE_TARGETS) - $(QUIET)$(MAKE) -r -f $(OCAMLMAKEFILE) nolink \ - REAL_RESULT="$(NCRESULT)" \ - REAL_OCAMLC="$(OCAMLOPT)" \ - make_deps=yes -ncnl: native-code-nolink - -# generates byte-code libraries -byte-code-library: $(PRE_TARGETS) - $(QUIET)$(MAKE) -r -f $(OCAMLMAKEFILE) \ - $(RES_CLIB) $(BCRESULT).cma \ - REAL_RESULT="$(BCRESULT)" \ - CREATE_LIB=yes \ - make_deps=yes -bcl: byte-code-library - -# generates native-code libraries -native-code-library: $(PRE_TARGETS) - $(QUIET)$(MAKE) -r -f $(OCAMLMAKEFILE) \ - $(RES_CLIB) $(NCRESULT).cmxa \ - REAL_RESULT="$(NCRESULT)" \ - REAL_OCAMLC="$(OCAMLOPT)" \ - CREATE_LIB=yes \ - make_deps=yes -ncl: native-code-library - -ifdef WIN32 -# generates byte-code dll -byte-code-dll: $(PRE_TARGETS) - $(QUIET)$(MAKE) -r -f $(OCAMLMAKEFILE) \ - $(RES_CLIB) $(BCRESULT).dll \ - REAL_RESULT="$(BCRESULT)" \ - make_deps=yes -bcd: byte-code-dll - -# generates native-code dll -native-code-dll: $(PRE_TARGETS) - $(QUIET)$(MAKE) -r -f $(OCAMLMAKEFILE) \ - $(RES_CLIB) $(NCRESULT).dll \ - REAL_RESULT="$(NCRESULT)" \ - REAL_OCAMLC="$(OCAMLOPT)" \ - make_deps=yes -ncd: native-code-dll -endif - -# generates byte-code with debugging information -debug-code: $(PRE_TARGETS) - $(QUIET)$(MAKE) -r -f $(OCAMLMAKEFILE) $(BCRESULT) \ - REAL_RESULT="$(BCRESULT)" make_deps=yes \ - OCAMLFLAGS="-g $(OCAMLFLAGS)" \ - OCAMLLDFLAGS="-g $(OCAMLLDFLAGS)" -dc: debug-code - -debug-code-nolink: $(PRE_TARGETS) - $(QUIET)$(MAKE) -r -f $(OCAMLMAKEFILE) nolink \ - REAL_RESULT="$(BCRESULT)" make_deps=yes \ - OCAMLFLAGS="-g $(OCAMLFLAGS)" \ - OCAMLLDFLAGS="-g $(OCAMLLDFLAGS)" -dcnl: debug-code-nolink - -# generates byte-code with debugging information (native code) -debug-native-code: $(PRE_TARGETS) - $(QUIET)$(MAKE) -r -f $(OCAMLMAKEFILE) $(NCRESULT) \ - REAL_RESULT="$(NCRESULT)" make_deps=yes \ - REAL_OCAMLC="$(OCAMLOPT)" \ - OCAMLFLAGS="-g $(OCAMLFLAGS)" \ - OCAMLLDFLAGS="-g $(OCAMLLDFLAGS)" -dnc: debug-native-code - -debug-native-code-nolink: $(PRE_TARGETS) - $(QUIET)$(MAKE) -r -f $(OCAMLMAKEFILE) nolink \ - REAL_RESULT="$(NCRESULT)" make_deps=yes \ - REAL_OCAMLC="$(OCAMLOPT)" \ - OCAMLFLAGS="-g $(OCAMLFLAGS)" \ - OCAMLLDFLAGS="-g $(OCAMLLDFLAGS)" -dncnl: debug-native-code-nolink - -# generates byte-code libraries with debugging information -debug-code-library: $(PRE_TARGETS) - $(QUIET)$(MAKE) -r -f $(OCAMLMAKEFILE) \ - $(RES_CLIB) $(BCRESULT).cma \ - REAL_RESULT="$(BCRESULT)" make_deps=yes \ - CREATE_LIB=yes \ - OCAMLFLAGS="-g $(OCAMLFLAGS)" \ - OCAMLLDFLAGS="-g $(OCAMLLDFLAGS)" -dcl: debug-code-library - -# generates byte-code libraries with debugging information (native code) -debug-native-code-library: $(PRE_TARGETS) - $(QUIET)$(MAKE) -r -f $(OCAMLMAKEFILE) \ - $(RES_CLIB) $(NCRESULT).cma \ - REAL_RESULT="$(NCRESULT)" make_deps=yes \ - REAL_OCAMLC="$(OCAMLOPT)" \ - CREATE_LIB=yes \ - OCAMLFLAGS="-g $(OCAMLFLAGS)" \ - OCAMLLDFLAGS="-g $(OCAMLLDFLAGS)" -dncl: debug-native-code-library - -# generates byte-code for profiling -profiling-byte-code: $(PRE_TARGETS) - $(QUIET)$(MAKE) -r -f $(OCAMLMAKEFILE) $(BCRESULT) \ - REAL_RESULT="$(BCRESULT)" PROFILING="y" \ - make_deps=yes -pbc: profiling-byte-code - -# generates native-code - -profiling-native-code: $(PRE_TARGETS) - $(QUIET)$(MAKE) -r -f $(OCAMLMAKEFILE) $(NCRESULT) \ - REAL_RESULT="$(NCRESULT)" \ - REAL_OCAMLC="$(OCAMLOPT)" \ - PROFILING="y" \ - make_deps=yes -pnc: profiling-native-code - -# generates byte-code libraries -profiling-byte-code-library: $(PRE_TARGETS) - $(QUIET)$(MAKE) -r -f $(OCAMLMAKEFILE) \ - $(RES_CLIB) $(BCRESULT).cma \ - REAL_RESULT="$(BCRESULT)" PROFILING="y" \ - CREATE_LIB=yes \ - make_deps=yes -pbcl: profiling-byte-code-library - -# generates native-code libraries -profiling-native-code-library: $(PRE_TARGETS) - $(QUIET)$(MAKE) -r -f $(OCAMLMAKEFILE) \ - $(RES_CLIB) $(NCRESULT).cmxa \ - REAL_RESULT="$(NCRESULT)" PROFILING="y" \ - REAL_OCAMLC="$(OCAMLOPT)" \ - CREATE_LIB=yes \ - make_deps=yes -pncl: profiling-native-code-library - -# packs byte-code objects -pack-byte-code: $(PRE_TARGETS) - $(QUIET)$(MAKE) -r -f $(OCAMLMAKEFILE) $(BCRESULT).cmo \ - REAL_RESULT="$(BCRESULT)" \ - PACK_LIB=yes make_deps=yes -pabc: pack-byte-code - -# packs native-code objects -pack-native-code: $(PRE_TARGETS) - $(QUIET)$(MAKE) -r -f $(OCAMLMAKEFILE) \ - $(NCRESULT).cmx $(NCRESULT).$(EXT_OBJ) \ - REAL_RESULT="$(NCRESULT)" \ - REAL_OCAMLC="$(OCAMLOPT)" \ - PACK_LIB=yes make_deps=yes -panc: pack-native-code - -# generates HTML-documentation -htdoc: $(DOC_DIR)/$(RESULT)/html/index.html - -# generates Latex-documentation -ladoc: $(DOC_DIR)/$(RESULT)/latex/doc.tex - -# generates PostScript-documentation -psdoc: $(DOC_DIR)/$(RESULT)/latex/doc.ps - -# generates PDF-documentation -pdfdoc: $(DOC_DIR)/$(RESULT)/latex/doc.pdf - -# generates all supported forms of documentation -doc: htdoc ladoc psdoc pdfdoc - -########################################################################### -# LOW LEVEL RULES - -$(REAL_RESULT): $(REAL_IMPL_INTF) $(OBJ_LINK) $(EXTRADEPS) $(RESULTDEPS) - $(REAL_OCAMLFIND) $(REAL_OCAMLC) \ - $(OCAML_FIND_PACKAGES) $(OCAML_FIND_LINKPKG) \ - $(ALL_LDFLAGS) $(OBJS_LIBS) -o $@$(EXE) \ - $(REAL_IMPL) - -nolink: $(REAL_IMPL_INTF) $(OBJ_LINK) - -ifdef WIN32 -$(REAL_RESULT).dll: $(REAL_IMPL_INTF) $(OBJ_LINK) - $(CAMLIDLDLL) $(CAMLIDLDLLFLAGS) $(OBJ_LINK) $(CLIBS) \ - -o $@ $(REAL_IMPL) -endif - -%$(TOPSUFFIX): $(REAL_IMPL_INTF) $(OBJ_LINK) $(EXTRADEPS) - $(REAL_OCAMLFIND) $(OCAMLMKTOP) \ - $(OCAML_FIND_PACKAGES) $(OCAML_FIND_LINKPKG) \ - $(ALL_LDFLAGS) $(OBJS_LIBS) -o $@$(EXE) \ - $(REAL_IMPL) - -.SUFFIXES: .mli .ml .cmi .cmo .cmx .cma .cmxa .$(EXT_OBJ) \ - .mly .di .d .$(EXT_LIB) .idl %.oxridl .c .m .$(EXT_CXX) .h .so \ - .rep .zog .glade - -ifndef STATIC -ifdef MINGW -# From OCaml 3.11.0, ocamlmklib is available on windows -OCAMLMLIB_EXISTS = $(shell which $(OCAMLMKLIB)) -ifeq ($(strip $(OCAMLMLIB_EXISTS)),) -$(DLLSONAME): $(OBJ_LINK) - $(CC) $(CFLAGS) $(CFLAGS_WIN32) $(OBJ_LINK) -shared -o $@ \ - $(wildcard $(foreach dir,$(LIBDIRS),$(CLIBS:%=$(dir)/lib%.a))) \ - '$(OCAMLLIBPATH)/ocamlrun.a' \ - -Wl,--whole-archive \ - -Wl,--export-all-symbols \ - -Wl,--allow-multiple-definition \ - -Wl,--enable-auto-import -else -$(DLLSONAME): $(OBJ_LINK) - $(OCAMLMKLIB) $(INCFLAGS) $(CLIBFLAGS) \ - -o $(CLIB_BASE) $(OBJ_LINK) $(CLIBS:%=-l%) \ - $(CFRAMEWORKS:%=-framework %) \ - $(OCAMLMKLIB_FLAGS) -endif -else -ifdef MSVC -$(DLLSONAME): $(OBJ_LINK) - link /NOLOGO /DLL /OUT:$@ $(OBJ_LINK) \ - $(wildcard $(foreach dir,$(LIBDIRS),$(CLIBS:%=$(dir)/%.lib))) \ - '$(OCAMLLIBPATH)/ocamlrun.lib' - -else -$(DLLSONAME): $(OBJ_LINK) - $(OCAMLMKLIB) $(INCFLAGS) $(CLIBFLAGS) \ - -o $(CLIB_BASE) $(OBJ_LINK) $(CLIBS:%=-l%) $(CFRAMEWORKS:%=-framework %) \ - $(OCAMLMKLIB_FLAGS) -endif -endif -endif - -ifndef LIB_PACK_NAME -$(RESULT).cma: $(REAL_IMPL_INTF) $(MAKEDLL) $(EXTRADEPS) $(RESULTDEPS) - $(REAL_OCAMLFIND) $(REAL_OCAMLC) -a $(ALL_LDFLAGS) $(OBJS_LIBS) -o $@ $(REAL_IMPL) - -$(RESULT).cmxa $(RESULT).$(EXT_LIB): $(REAL_IMPL_INTF) $(EXTRADEPS) $(RESULTDEPS) - $(REAL_OCAMLFIND) $(OCAMLOPT) -a $(ALL_LDFLAGS) $(OBJS_LIBS) -o $@ $(REAL_IMPL) -else -# Packing a bytecode library -ifdef BYTE_OCAML -$(LIB_PACK_NAME).cmi $(LIB_PACK_NAME).cmo: $(REAL_IMPL_INTF) - $(REAL_OCAMLFIND) $(REAL_OCAMLC) -pack -o $(LIB_PACK_NAME).cmo $(OCAMLLDFLAGS) $(REAL_IMPL) -# Packing into a unit which can be transformed into a library -# Remember the .ml's must have been compiled with -for-pack $(LIB_PACK_NAME) -else -$(LIB_PACK_NAME).cmi $(LIB_PACK_NAME).cmx: $(REAL_IMPL_INTF) - $(REAL_OCAMLFIND) $(OCAMLOPT) -pack -o $(LIB_PACK_NAME).cmx $(OCAMLLDFLAGS) $(REAL_IMPL) -endif - -$(RESULT).cma: $(LIB_PACK_NAME).cmi $(LIB_PACK_NAME).cmo $(MAKEDLL) $(EXTRADEPS) $(RESULTDEPS) - $(REAL_OCAMLFIND) $(REAL_OCAMLC) -a $(ALL_LDFLAGS) $(OBJS_LIBS) -o $@ $(LIB_PACK_NAME).cmo - -$(RESULT).cmxa $(RESULT).$(EXT_LIB): $(LIB_PACK_NAME).cmi $(LIB_PACK_NAME).cmx $(EXTRADEPS) $(RESULTDEPS) - $(REAL_OCAMLFIND) $(OCAMLOPT) -a $(filter-out -custom, $(ALL_LDFLAGS)) $(OBJS_LIBS) -o $@ $(LIB_PACK_NAME).cmx -endif - -$(RES_CLIB): $(OBJ_LINK) -ifndef MSVC - ifneq ($(strip $(OBJ_LINK)),) - $(AR) rcs $@ $(OBJ_LINK) - endif -else - ifneq ($(strip $(OBJ_LINK)),) - lib -nologo -debugtype:cv -out:$(RES_CLIB) $(OBJ_LINK) - endif -endif - -.mli.cmi: $(EXTRADEPS) - $(QUIET)pp=`sed -n -e '/^#/d' -e 's/(\*pp \([^*]*\) \*)/\1/p;q' $<`; \ - if [ -z "$$pp" ]; then \ - $(ECHO) $(REAL_OCAMLFIND) $(INTF_OCAMLC) $(OCAML_FIND_PACKAGES) \ - -c $(THREAD_FLAG) $(ANNOT_FLAG) \ - $(OCAMLFLAGS) $(INCFLAGS) $<; \ - $(REAL_OCAMLFIND) $(INTF_OCAMLC) $(OCAML_FIND_PACKAGES) \ - -c $(THREAD_FLAG) $(ANNOT_FLAG) \ - $(OCAMLFLAGS) $(INCFLAGS) $<; \ - else \ - $(ECHO) $(REAL_OCAMLFIND) $(INTF_OCAMLC) $(OCAML_FIND_PACKAGES) \ - -c -pp \"$$pp $(PPFLAGS)\" $(THREAD_FLAG) $(ANNOT_FLAG) \ - $(OCAMLFLAGS) $(INCFLAGS) $<; \ - $(REAL_OCAMLFIND) $(INTF_OCAMLC) $(OCAML_FIND_PACKAGES) \ - -c -pp "$$pp $(PPFLAGS)" $(THREAD_FLAG) $(ANNOT_FLAG) \ - $(OCAMLFLAGS) $(INCFLAGS) $<; \ - fi - -.ml.cmi .ml.$(EXT_OBJ) .ml.cmx .ml.cmo: $(EXTRADEPS) - $(QUIET)pp=`sed -n -e '/^#/d' -e 's/(\*pp \([^*]*\) \*)/\1/p;q' $<`; \ - if [ -z "$$pp" ]; then \ - $(ECHO) $(REAL_OCAMLFIND) $(REAL_OCAMLC) $(OCAML_FIND_PACKAGES) \ - -c $(ALL_OCAMLCFLAGS) $<; \ - $(REAL_OCAMLFIND) $(REAL_OCAMLC) $(OCAML_FIND_PACKAGES) \ - -c $(ALL_OCAMLCFLAGS) $<; \ - else \ - $(ECHO) $(REAL_OCAMLFIND) $(REAL_OCAMLC) $(OCAML_FIND_PACKAGES) \ - -c -pp \"$$pp $(PPFLAGS)\" $(ALL_OCAMLCFLAGS) $<; \ - $(REAL_OCAMLFIND) $(REAL_OCAMLC) $(OCAML_FIND_PACKAGES) \ - -c -pp "$$pp $(PPFLAGS)" $(ALL_OCAMLCFLAGS) $<; \ - fi - -.PRECIOUS: %.ml -%.ml: %.mll - $(OCAMLLEX) $(LFLAGS) $< - -.PRECIOUS: %.ml %.mli -%.ml %.mli: %.mly - $(OCAMLYACC) $(YFLAGS) $< - $(QUIET)pp=`sed -n -e 's/.*(\*pp \([^*]*\) \*).*/\1/p;q' $<`; \ - if [ ! -z "$$pp" ]; then \ - mv $*.ml $*.ml.temporary; \ - echo "(*pp $$pp $(PPFLAGS)*)" > $*.ml; \ - cat $*.ml.temporary >> $*.ml; \ - rm $*.ml.temporary; \ - mv $*.mli $*.mli.temporary; \ - echo "(*pp $$pp $(PPFLAGS)*)" > $*.mli; \ - cat $*.mli.temporary >> $*.mli; \ - rm $*.mli.temporary; \ - fi - - -.PRECIOUS: %.ml -%.ml: %.rep - $(CAMELEON_REPORT) $(CAMELEON_REPORT_FLAGS) -gen $< - -.PRECIOUS: %.ml -%.ml: %.zog - $(CAMELEON_ZOGGY) $(CAMELEON_ZOGGY_FLAGS) -impl $< > $@ - -.PRECIOUS: %.ml -%.ml: %.glade - $(OCAML_GLADECC) $(OCAML_GLADECC_FLAGS) $< > $@ - -.PRECIOUS: %.ml %.mli -%.ml %.mli: %.oxridl - $(OXRIDL) $< - -.PRECIOUS: %.ml %.mli %_stubs.c %.h -%.ml %.mli %_stubs.c %.h: %.idl - $(CAMLIDL) $(MAYBE_IDL_HEADER) $(IDLFLAGS) \ - $(CAMLIDLFLAGS) $< - $(QUIET)if [ $(NOIDLHEADER) ]; then touch $*.h; fi - -.c.$(EXT_OBJ): - $(OCAMLC) -c -cc "$(CC)" -ccopt "$(CFLAGS) \ - $(CPPFLAGS) $(CPPFLAGS_WIN32) \ - $(CFLAGS_WIN32) $(CINCFLAGS) $(CFLAG_O)$@ " $< - -.m.$(EXT_OBJ): - $(CC) -c $(CFLAGS) $(CINCFLAGS) $(CPPFLAGS) \ - -I'$(OCAMLLIBPATH)' \ - $< $(CFLAG_O)$@ - -.$(EXT_CXX).$(EXT_OBJ): - $(CXX) -c $(CXXFLAGS) $(CINCFLAGS) $(CPPFLAGS) \ - -I'$(OCAMLLIBPATH)' \ - $< $(CFLAG_O)$@ - -$(MLDEPDIR)/%.d: %.ml - $(QUIET)if [ ! -d $(@D) ]; then mkdir -p $(@D); fi - $(QUIET)pp=`sed -n -e '/^#/d' -e 's/(\*pp \([^*]*\) \*)/\1/p;q' $<`; \ - if [ -z "$$pp" ]; then \ - $(ECHO) $(REAL_OCAMLFIND) $(OCAMLDEP) $(OCAML_DEP_PACKAGES) \ - $(DINCFLAGS) $< \> $@; \ - $(REAL_OCAMLFIND) $(OCAMLDEP) $(OCAML_DEP_PACKAGES) \ - $(DINCFLAGS) $< > $@; \ - else \ - $(ECHO) $(REAL_OCAMLFIND) $(OCAMLDEP) $(OCAML_DEP_PACKAGES) \ - -pp \"$$pp $(PPFLAGS)\" $(DINCFLAGS) $< \> $@; \ - $(REAL_OCAMLFIND) $(OCAMLDEP) $(OCAML_DEP_PACKAGES) \ - -pp "$$pp $(PPFLAGS)" $(DINCFLAGS) $< > $@; \ - fi - -$(BCDIDIR)/%.di $(NCDIDIR)/%.di: %.mli - $(QUIET)if [ ! -d $(@D) ]; then mkdir -p $(@D); fi - $(QUIET)pp=`sed -n -e '/^#/d' -e 's/(\*pp \([^*]*\) \*)/\1/p;q' $<`; \ - if [ -z "$$pp" ]; then \ - $(ECHO) $(REAL_OCAMLFIND) $(OCAMLDEP) $(DEPFLAGS) $(DINCFLAGS) $< \> $@; \ - $(REAL_OCAMLFIND) $(OCAMLDEP) $(DEPFLAGS) $(DINCFLAGS) $< > $@; \ - else \ - $(ECHO) $(REAL_OCAMLFIND) $(OCAMLDEP) $(DEPFLAGS) \ - -pp \"$$pp $(PPFLAGS)\" $(DINCFLAGS) $< \> $@; \ - $(REAL_OCAMLFIND) $(OCAMLDEP) $(DEPFLAGS) \ - -pp "$$pp $(PPFLAGS)" $(DINCFLAGS) $< > $@; \ - fi - -$(DOC_DIR)/$(RESULT)/html: - mkdir -p $@ - -$(DOC_DIR)/$(RESULT)/html/index.html: $(DOC_DIR)/$(RESULT)/html $(DOC_FILES) - rm -rf $</* - $(QUIET)pp=`sed -n -e '/^#/d' -e 's/(\*pp \([^*]*\) \*)/\1/p;q' $(FIRST_DOC_FILE)`; \ - if [ -z "$$pp" ]; then \ - $(ECHO) $(REAL_OCAMLFIND) $(OCAMLDOC) $(OCAML_FIND_PACKAGES) -html -d $< $(OCAMLDOCFLAGS) $(INCFLAGS) $(DOC_FILES); \ - $(REAL_OCAMLFIND) $(OCAMLDOC) $(OCAML_FIND_PACKAGES) -html -d $< $(OCAMLDOCFLAGS) $(INCFLAGS) $(DOC_FILES); \ - else \ - $(ECHO) $(REAL_OCAMLFIND) $(OCAMLDOC) $(OCAML_FIND_PACKAGES) -pp \"$$pp $(PPFLAGS)\" -html -d $< $(OCAMLDOCFLAGS) \ - $(INCFLAGS) $(DOC_FILES); \ - $(REAL_OCAMLFIND) $(OCAMLDOC) $(OCAML_FIND_PACKAGES) -pp "$$pp $(PPFLAGS)" -html -d $< $(OCAMLDOCFLAGS) \ - $(INCFLAGS) $(DOC_FILES); \ - fi - -$(DOC_DIR)/$(RESULT)/latex: - mkdir -p $@ - -$(DOC_DIR)/$(RESULT)/latex/doc.tex: $(DOC_DIR)/$(RESULT)/latex $(DOC_FILES) - rm -rf $</* - $(QUIET)pp=`sed -n -e '/^#/d' -e 's/(\*pp \([^*]*\) \*)/\1/p;q' $(FIRST_DOC_FILE)`; \ - if [ -z "$$pp" ]; then \ - $(ECHO) $(REAL_OCAMLFIND) $(OCAMLDOC) $(OCAML_FIND_PACKAGES) -latex $(OCAMLDOCFLAGS) $(INCFLAGS) \ - $(DOC_FILES) -o $@; \ - $(REAL_OCAMLFIND) $(OCAMLDOC) $(OCAML_FIND_PACKAGES) -latex $(OCAMLDOCFLAGS) $(INCFLAGS) $(DOC_FILES) \ - -o $@; \ - else \ - $(ECHO) $(REAL_OCAMLFIND) $(OCAMLDOC) $(OCAML_FIND_PACKAGES) -pp \"$$pp $(PPFLAGS)\" -latex $(OCAMLDOCFLAGS) \ - $(INCFLAGS) $(DOC_FILES) -o $@; \ - $(REAL_OCAMLFIND) $(OCAMLDOC) $(OCAML_FIND_PACKAGES) -pp "$$pp $(PPFLAGS)" -latex $(OCAMLDOCFLAGS) \ - $(INCFLAGS) $(DOC_FILES) -o $@; \ - fi - -$(DOC_DIR)/$(RESULT)/latex/doc.ps: $(DOC_DIR)/$(RESULT)/latex/doc.tex - cd $(DOC_DIR)/$(RESULT)/latex && \ - $(LATEX) doc.tex && \ - $(LATEX) doc.tex && \ - $(DVIPS) $(DVIPSFLAGS) doc.dvi -o $(@F) - -$(DOC_DIR)/$(RESULT)/latex/doc.pdf: $(DOC_DIR)/$(RESULT)/latex/doc.ps - cd $(DOC_DIR)/$(RESULT)/latex && $(PS2PDF) $(<F) - -define make_subproj -.PHONY: -subproj_$(1): - $$(eval $$(call PROJ_$(1))) - $(QUIET)if [ "$(SUBTARGET)" != "all" ]; then \ - $(MAKE) -f $(OCAMLMAKEFILE) $(SUBTARGET); \ - fi -endef - -$(foreach subproj,$(SUBPROJS),$(eval $(call make_subproj,$(subproj)))) - -.PHONY: -subprojs: $(SUBPROJS:%=subproj_%) - -########################################################################### -# (UN)INSTALL RULES FOR LIBRARIES - -.PHONY: libinstall -libinstall: all - $(QUIET)printf "\nInstalling library with ocamlfind\n" - $(OCAMLFIND) install $(OCAMLFIND_INSTFLAGS) $(RESULT) META $(LIBINSTALL_FILES) - $(QUIET)printf "\nInstallation successful.\n" - -.PHONY: libinstall-byte-code -libinstall-byte-code: all - $(QUIET)printf "\nInstalling byte-code library with ocamlfind\n" - $(OCAMLFIND) install $(OCAMLFIND_INSTFLAGS) $(RESULT) META \ - $(filter-out $(RESULT).$(EXT_LIB) $(RESULT).cmxa, $(LIBINSTALL_FILES)) - $(QUIET)printf "\nInstallation successful.\n" - -.PHONY: libinstall-native-code -libinstall-native-code: all - $(QUIET)printf "\nInstalling native-code library with ocamlfind\n" - $(OCAMLFIND) install $(OCAMLFIND_INSTFLAGS) $(RESULT) META \ - $(filter-out $(DLLSONAME) $(RESULT).cma, $(LIBINSTALL_FILES)) - $(QUIET)printf "\nInstallation successful.\n" - -.PHONY: libuninstall -libuninstall: - $(QUIET)printf "\nUninstalling library with ocamlfind\n" - $(OCAMLFIND) remove $(OCAMLFIND_INSTFLAGS) $(RESULT) - $(QUIET)printf "\nUninstallation successful.\n" - -.PHONY: rawinstall -rawinstall: all - $(QUIET)printf "\nInstalling library to: $(OCAML_LIB_INSTALL)\n" - -install -d $(OCAML_LIB_INSTALL) - for i in $(LIBINSTALL_FILES); do \ - if [ -f $$i ]; then \ - install -c -m 0644 $$i $(OCAML_LIB_INSTALL); \ - fi; \ - done - $(QUIET)printf "\nInstallation successful.\n" - -.PHONY: rawuninstall -rawuninstall: - $(QUIET)printf "\nUninstalling library from: $(OCAML_LIB_INSTALL)\n" - cd $(OCAML_LIB_INSTALL) && rm $(notdir $(LIBINSTALL_FILES)) - $(QUIET)printf "\nUninstallation successful.\n" - -########################################################################### -# MAINTENANCE RULES - -.PHONY: clean -clean:: - rm -f $(TARGETS) $(TRASH) - rm -rf $(BCDIDIR) $(NCDIDIR) $(MLDEPDIR) - -.PHONY: cleanup -cleanup:: - rm -f $(NONEXECS) $(TRASH) - rm -rf $(BCDIDIR) $(NCDIDIR) $(MLDEPDIR) - -.PHONY: clean-doc -clean-doc:: - rm -rf $(DOC_DIR)/$(RESULT) - -.PHONY: clean-all -clean-all:: clean clean-doc - -.PHONY: nobackup -nobackup: - rm -f *.bak *~ *.dup diff --git a/README.org b/README.org index 437b21326b276a30fe969f9cdbbec9b6eb6e561a..9ff8a94a9c7af9d94658382212c20c992e26c376 100644 --- a/README.org +++ b/README.org @@ -50,7 +50,7 @@ lus2lic compiler (in src) lxm.{ml|mli} lexer.mll parser.mly -parserUtils.ml +lv6parserUtils.ml astCore.ml astV6.ml astPredef.ml @@ -101,7 +101,7 @@ l2lSplit.{ml|mli} ** All this controlled from a main program main.ml -mainArgs.{ml|mli} +lv6MainArgs.{ml|mli} global.ml compile.{ml|mli} @@ -110,7 +110,8 @@ compile.{ml|mli} verbose.{ml|mli} filenameExtras.ml filenameExtras.mli -errors.ml +lv6errors.ml +lv6util.ml ** crutch to remove uglyStuff.ml diff --git a/README.txt b/README.txt new file mode 100644 index 0000000000000000000000000000000000000000..51e9c03ba03eb2478e3559672ad48f8c79950e18 --- /dev/null +++ b/README.txt @@ -0,0 +1,12 @@ +(* OASIS_START *) +(* DO NOT EDIT (digest: ad5c8edb7bf1ce8552ea81a7377dd519) *) +This is the README file for the lus2lic distribution. + +The Lustre V6 Verimag compiler and interpreter + +See the files INSTALL.txt for building and installation instructions. + +Home page: http://www-verimag.imag.fr/lustre-v6.html + + +(* OASIS_STOP *) diff --git a/_oasis b/_oasis new file mode 100644 index 0000000000000000000000000000000000000000..f9083c7726c0064345bf20dc0767bd9f0047efab --- /dev/null +++ b/_oasis @@ -0,0 +1,33 @@ +OASISFormat: 0.3 +Name: lus2lic +Version: 1 +Synopsis: The Lustre V6 compiler +Authors: Erwan Jahier and Pascal Raymond +License: PROP +Plugins: DevFiles (0.3), META (0.3), StdFiles (0.3) +Synopsis: The Lustre V6 Verimag compiler and interpreter +Homepage: http://www-verimag.imag.fr/lustre-v6.html +BuildTools: ocamlbuild + + +Executable lus2lic + Install:true + Path: src/ + MainIs: main.ml + BuildTools: ocamlbuild + BuildDepends: str,unix,num,rdbg-plugin + Build:true + CompiledObject: native + + + +Library lus4ocaml + Modules: Lus2licRun + Path: src/ + BuildTools: ocamlbuild + BuildDepends: str,unix,num,rdbg-plugin + Install:true + XMETAEnable: true + XMETADescription: an API to call the Lustre v6 interpreter from ocaml + InternalModules: SocExecValue,SocUtils,Lv6util,Lv6version,Lv6errors,Lxm,Lv6MainArgs,Verbose,Soc,SocPredef,Ident,SocExec,SocExecEvalPredef,Compile,AstTab,AstTabSymbol,AstInstanciateModel,Lv6parserUtils,AstV6,FilenameExtras,LicTab,LicDump,AstPredef,Lic,AstCore,LicName,IdSolver,EvalConst,LicEvalConst,LicEvalType,UnifyType,Ast2lic,AstV6Dump,EvalClock,UnifyClock,LicEvalClock,EvalType,LicPrg,LicMetaOp,L2lCheckOutputs,Misc,L2lRmPoly,L2lExpandMetaOp,L2lSplit,L2lExpandNodes,L2lExpandArrays,L2lCheckLoops,Lv6lexer,Lv6parser,AstRecognizePredef,Lic2soc,ActionsDeps +# Comment se passer de cette liste à la Prevert ? diff --git a/_tags b/_tags new file mode 100644 index 0000000000000000000000000000000000000000..cc4ff346bce5a5fc7475c7cc12483afdeec741f6 --- /dev/null +++ b/_tags @@ -0,0 +1,27 @@ +# OASIS_START +# DO NOT EDIT (digest: fcfa6da02127697c0fe7a90d2584afbb) +# Ignore VCS directories, you can use the same kind of rule outside +# OASIS_START/STOP if you want to exclude directories that contains +# useless stuff for the build process +<**/.svn>: -traverse +<**/.svn>: not_hygienic +".bzr": -traverse +".bzr": not_hygienic +".hg": -traverse +".hg": not_hygienic +".git": -traverse +".git": not_hygienic +"_darcs": -traverse +"_darcs": not_hygienic +# Executable lus2lic +"src/main.native": pkg_num +"src/main.native": pkg_rdbg-plugin +"src/main.native": pkg_str +"src/main.native": pkg_unix +# Library lus4ocaml +"src/lus4ocaml.cmxs": use_lus4ocaml +<src/*.ml{,i}>: pkg_num +<src/*.ml{,i}>: pkg_rdbg-plugin +<src/*.ml{,i}>: pkg_str +<src/*.ml{,i}>: pkg_unix +# OASIS_STOP diff --git a/lv6-ref-man/Makefile b/lv6-ref-man/Makefile index 6ab90006f9b7bd36cf80009797bc1d2ec9ad8d0f..f462507fb7ba75b9df0200d48e30214daef288b4 100644 --- a/lv6-ref-man/Makefile +++ b/lv6-ref-man/Makefile @@ -46,7 +46,7 @@ LUS2TEX= \ $(OBJPDF)/sincos-bad.lus.tex \ $(OBJPDF)/integrator.lus.tex \ $(OBJPDF)/type_decl.lus.tex \ - $(OBJPDF)/merge.lus.tex \ + $(OBJPDF)/test_merge.lus.tex \ $(OBJPDF)/enum0.lus.tex \ $(OBJPDF)/param_node.lus.tex \ $(OBJPDF)/param_node2.lus.tex \ @@ -91,10 +91,11 @@ $(OBJPDF)/%.tex : $(FIGDIR)/%.fig cd $(OBJPDF); epstopdf $*.ps cd $(OBJPDF); fig2dev -Lpstex_t -p $*.pdf $*.fig > $*.tex -$(OBJPDF)/version.tex: ../$(OBJDIR)/lus2lic Makefile +LUS2LIC=../main.native +$(OBJPDF)/version.tex: $(LUS2LIC) Makefile rm -f lv6-ref-man/version.tex ; \ date +VERSION_DATE=%d-%m-%y > lv6-ref-man/version.tex ; \ - echo "\\\newcommand{\\\version}{`../$(OBJDIR)/lus2lic --version | cut -d " " -f1`}" > $(OBJPDF)/version.tex ; \ + echo "\\\newcommand{\\\version}{`$(LUS2LIC) --version | cut -d " " -f1`}" > $(OBJPDF)/version.tex ; \ echo "\\\newcommand{\\\sha}{$(SHA)}" >> $(OBJPDF)/version.tex ; \ echo "\\\newcommand{\\\versiondate}{`date +%d-%m-%y`}" >> $(OBJPDF)/version.tex ;\ diff --git a/lv6-ref-man/lv6-ref-man.tex b/lv6-ref-man/lv6-ref-man.tex index bb88f1438138f1a50bf6f448e2392be15a8989cc..07a8d006480515c887e7bd7fb7770f6b1a6fd382 100644 --- a/lv6-ref-man/lv6-ref-man.tex +++ b/lv6-ref-man/lv6-ref-man.tex @@ -1846,7 +1846,7 @@ a model can have as parameters a type, a constant, or a node. \label{merge} \begin{example}[The Merge operator] -\input{merge.lus} +\input{test_merge.lus} \end{example} diff --git a/release-lv6/Makefile b/release-lv6/Makefile index 48b35a335d82b9904bdc33abdb868d9fcdf1406f..69ee488c2bbe853352205297e3bd75b0e129ea59 100644 --- a/release-lv6/Makefile +++ b/release-lv6/Makefile @@ -1,10 +1,9 @@ -OBJDIR=./obj$(HOSTTYPE) LIC2CDIR=~/lic2loc LUS2LICDIR=~/lus2lic -LUS2LIC=$(LUS2LICDIR)/$(OBJDIR)/lus2lic +LUS2LIC=$(LUS2LICDIR)/$(HOSTTYPE)/bin/lus2lic WWW_DIR=/import/www/DIST-TOOLS/SYNCHRONE/lustre-v6 ifeq ($(HOSTTYPE),cygwin) @@ -39,7 +38,7 @@ doc: .PHONY:lus2lic lus2lic: - cd $(LUS2LICDIR)/ ; make nc + cd $(LUS2LICDIR)/ ; make cp $(LUS2LIC) $(RELNAME)/bin/ lus2licbc: diff --git a/src/actionsDeps.ml b/src/actionsDeps.ml index dbbe99b459eb9030a7773390cc23117c38d45410..ba4f8e98cd6bd2daab92f5f65352c15ce462a086 100644 --- a/src/actionsDeps.ml +++ b/src/actionsDeps.ml @@ -1,4 +1,4 @@ -(** Time-stamp: <modified the 17/05/2013 (at 17:45) by Erwan Jahier> *) +(** Time-stamp: <modified the 20/05/2014 (at 16:08) by Erwan Jahier> *) let dbg = (Verbose.get_flag "deps") @@ -28,16 +28,20 @@ let string_of_action: (action -> string) = (string_of_params i) (Lic.string_of_clock c) + + let string_of_action_simple: (action -> string) = fun (c, i, o, p,_) -> (* Version surchargée de SocUtils.string_of_operation : l'objectif est d'afficher, - en cas de cycle combinatoire, un message d'erreur que parle le plus possible + en cas de cycle combinatoire, un message d'erreur qui parle le plus possible à l'utilisateur qui a programmé en V6... Pour cela le mieux (je pense) est - simplement de rendre la variable sur laquelle porte + simplement de rendre la variable sur laquelle porte le cycle *) let string_of_operation = function | Soc.Assign -> "" - | op -> SocUtils.string_of_operation op + | Soc.Method((n, sk),sname) -> n + | Soc.Procedure(name,_,_) -> name + in let string_of_params p = String.concat ", " (List.map SocUtils.string_of_filter p) in if o = [] then @@ -89,11 +93,11 @@ let (concat: t -> t -> t) = (*********************************************************************************) (* exported *) -let (generate_deps_from_step_policy: +let (generate_deps_from_step_policy: Soc.precedence list -> (string * action) list -> t) = fun precedences actions -> let generate_deps_for_action: - (t -> string * string list -> t) = + (t -> string * string list -> t) = fun ad (action_name, actions_needed) -> let main_action = snd (List.find (fun (n, _) -> n = action_name) actions) in let deps = @@ -256,3 +260,63 @@ let build_data_deps_from_actions: (Lic.type_ -> Data.t) -> t -> action list -> deps (*********************************************************************************) +(* topological sort of actions *) + +type color = Grey | Black (* in process | done *) +type color_table = color MapAction.t + +exception DependencyCycle of action * action list +(* exception DependencyCycle of Soc.var_expr list *) + +let (grey_actions : color_table -> action list) = + fun ct -> + MapAction.fold + (fun action color acc -> if color=Grey then action::acc else acc) ct [] + +let rec (visit : t -> color_table -> action -> color_table) = + fun succ_t color_t n -> + if not (MapAction.mem n succ_t) then MapAction.add n Black color_t else + let color_t = + Actions.fold + (fun nt color_t -> + try + match MapAction.find nt color_t with + | Grey -> raise (DependencyCycle (n, grey_actions color_t)) + | Black -> color_t + with + (* The node [nt] is white *) + Not_found -> visit succ_t color_t nt + ) + (MapAction.find n succ_t) + (MapAction.add n Grey color_t) + in + MapAction.add n Black color_t + +(* TEDLT *) +let (check_there_is_no_cycle : action list -> t -> unit) = + fun actions t -> + List.iter (fun action -> ignore(visit t MapAction.empty action)) actions + + +let (topo_sort : action list -> t -> action list) = + fun actions succ_tbl -> + let visited_init = + List.fold_left (fun acc x -> MapAction.add x false acc) MapAction.empty actions + in + let rec f (acc:action list) (l:action list) (stbl:t) (visited:bool MapAction.t) = + (* The graph contains no cycle! *) + match l with + | [] -> List.rev acc + | x::tail -> + if (try MapAction.find x visited with Not_found -> assert false) + then + f acc tail stbl visited + else if (MapAction.mem x stbl) then + let x_succ = Actions.elements (MapAction.find x stbl) in + f acc (x_succ @ l) (MapAction.remove x stbl) visited + else + f (x::acc) tail stbl (MapAction.add x true visited) + in + check_there_is_no_cycle actions succ_tbl; + f [] actions succ_tbl visited_init + diff --git a/src/actionsDeps.mli b/src/actionsDeps.mli index 6baf10ef02523300dfa8a11c89d6656c5ef97aa5..da90f5c91ec4c46fb32b3b73381478a830f7845a 100644 --- a/src/actionsDeps.mli +++ b/src/actionsDeps.mli @@ -1,4 +1,4 @@ -(** Time-stamp: <modified the 08/04/2013 (at 14:11) by Erwan Jahier> *) +(** Time-stamp: <modified the 11/12/2013 (at 17:49) by Erwan Jahier> *) (** Compute dependencies between actions *) @@ -50,3 +50,7 @@ val generate_deps_from_step_policy: Soc.precedence list -> (string * action) lis val find_deps: t -> action -> action list val to_string: t -> string + +exception DependencyCycle of action * action list +(* Topological sort of actions. Raises DependencyCycle if there is one. *) +val topo_sort : action list -> t -> action list diff --git a/src/compile.ml b/src/compile.ml index 0be76775b5156f5dedaef3dea7ef7703f67c802c..983992195dfa17f689f598d8349ea559a8e8c9e2 100644 --- a/src/compile.ml +++ b/src/compile.ml @@ -1,4 +1,4 @@ -(* Time-stamp: <modified the 24/05/2013 (at 17:44) by Erwan Jahier> *) +(* Time-stamp: <modified the 13/12/2013 (at 14:16) by Erwan Jahier> *) open Lxm open Lv6errors @@ -7,8 +7,14 @@ open AstCore (* get the first package in the package/model list *) +let info msg = + let t = Sys.time() in + Verbose.exe ~level:1 (fun () -> Printf.eprintf "%4.4f: %s%!" t msg) + let (doit : Lv6MainArgs.t -> AstV6.pack_or_model list -> Ident.idref option -> LicPrg.t) = fun opt srclist main_node -> + let t0 = Sys.time() in + info "Start compiling to lic...\n"; let syntax_tab = AstTab.create srclist in (* Pour chaque package, on a un solveur de références globales, pour les types, const et node : @@ -20,9 +26,11 @@ let (doit : Lv6MainArgs.t -> AstV6.pack_or_model list -> Ident.idref option -> L . dans un des packs déclarés "uses", avec priorité dans l'ordre *) + let lic_tab = LicTab.create syntax_tab in Verbose.exe ~level:2 (fun () -> AstTab.dump syntax_tab); + info "Compiling into lic...\n"; let lic_tab = match main_node with | None -> LicTab.compile_all lic_tab | Some main_node -> @@ -31,48 +39,59 @@ let (doit : Lv6MainArgs.t -> AstV6.pack_or_model list -> Ident.idref option -> L else LicTab.compile_node lic_tab main_node in + info "Converting to lic_prg...\n"; let zelic = LicTab.to_lic_prg lic_tab in (* élimination polymorphisme surcharge *) + info "Removing polymorphism...\n"; let zelic = L2lRmPoly.doit zelic in (* alias des types array *) (* let zelic = L2lAliasType.doit zelic in *) - let zelic = if not opt.Lv6MainArgs.inline_iterator then zelic else + let zelic = if not opt.Lv6MainArgs.inline_iterator then zelic else ( + info "Inlining iterators...\n"; (* to be done before array expansion otherwise they won't be expanded *) - L2lExpandMetaOp.doit zelic + L2lExpandMetaOp.doit zelic + ) in let zelic = if Lv6MainArgs.global_opt.Lv6MainArgs.one_op_per_equation || opt.Lv6MainArgs.expand_nodes (* expand performs no fixpoint, so it will work - only if we have one op per equation...*) - then + only if we have one op per equation...*) + then ( (* Split des equations (1 eq = 1 op) *) - L2lSplit.doit zelic + info "One op per equations...\n"; + L2lSplit.doit zelic) else zelic in - let zelic = if not opt.Lv6MainArgs.expand_nodes then zelic else - L2lExpandNodes.doit opt.Lv6MainArgs.dont_expand_nodes zelic + let zelic = if not opt.Lv6MainArgs.expand_nodes then zelic else ( + info "Expanding nodes...\n"; + L2lExpandNodes.doit opt.Lv6MainArgs.dont_expand_nodes zelic) in (* Array and struct expansion: to do after polymorphism elimination *) - let zelic = if not opt.Lv6MainArgs.expand_arrays then zelic else - L2lExpandArrays.doit zelic + let zelic = if not opt.Lv6MainArgs.expand_arrays then zelic else ( + info "Expanding arrays...\n"; + L2lExpandArrays.doit zelic) in (* Currently only works in this mode *) - if Lv6MainArgs.global_opt.Lv6MainArgs.ec then L2lCheckLoops.doit zelic; + if Lv6MainArgs.global_opt.Lv6MainArgs.ec then ( + info "Check loops...\n"; + L2lCheckLoops.doit zelic); + info "Check unique outputs...\n"; L2lCheckOutputs.doit zelic; - + info "Lic Compilation done!\n"; zelic + let test_lex ( lexbuf ) = ( let tk = ref (Lv6lexer.lexer lexbuf) in - while !tk <> Lv6parser.TK_EOF do - match (Lv6lexer.token_code !tk) with - ( co , lxm ) -> - Printf.printf "line %3d col %2d to %2d : %15s = \"%s\"\n" - (line lxm) (cstart lxm) (cend lxm) co (str lxm) ; - tk := (Lv6lexer.lexer lexbuf) - done + while !tk <> Lv6parser.TK_EOF do + match (Lv6lexer.token_code !tk) with + ( co , lxm ) -> + Printf.printf "line %3d col %2d to %2d : %15s = \"%s\"\n" + (line lxm) (cstart lxm) (cend lxm) co (str lxm) ; + tk := (Lv6lexer.lexer lexbuf) + done ) (* Retourne un AstV6.t *) diff --git a/src/data.ml b/src/data.ml deleted file mode 100644 index a9a22fe843781e52e33e8aebff843a7c78b8a2a1..0000000000000000000000000000000000000000 --- a/src/data.ml +++ /dev/null @@ -1,176 +0,0 @@ - -type ident = string -type v = I of int | F of float | B of bool - | E of ident * int - | A of v array | S of (ident * v) list | U - -type t = - | Bool | Int | Real - | Extern of ident - | Enum of (ident * ident list) - | Struct of ident * (ident * t) list - | Array of (t * int) - | Alpha of int - - -let rec (val_to_string_type : v -> string) = - function - | I _ -> "int" - | F _ -> "real" - | B _ -> "bool" - | E (e,_) -> e - | S fl -> "struct" - | A a -> "array" - | U -> "nil" - -let rec (val_to_string : (float -> string) -> v -> string) = - fun s2f -> - function - | I i -> string_of_int i - | F f -> s2f f - | B true -> "t" - | B false -> "f" - | E (e,_) -> e - | S fl -> "{"^(String.concat ";" - (List.map (fun (fn,fv) -> fn^"="^(val_to_string s2f fv)) fl))^"}" - | A a -> - let str = ref "[" in - let f i a = str := !str ^ (if i = 0 then "" else ",") ^ (val_to_string s2f a) in - Array.iteri f a; - (!str^"]") - | U -> "nil" - - -let rec (type_to_string : t -> string) = - fun v -> - let str = - match v with - | Bool -> "bool" - | Int -> "int" - | Real-> "real" - | Extern s -> s ^ "(*extern*)" -(* | Enum (s, sl) -> "enum " ^ s ^ " {" ^ (String.concat ", " sl) ^ "}" *) - | Enum (s, sl) -> s - | Struct (sid,_) -> sid ^ "(*struct*)" - | Array (ty, sz) -> Printf.sprintf "%s^%d" (type_to_string ty) sz - | Alpha nb -> - (* On génère des "types" à la Caml : 'a, 'b, 'c, etc. *) - let a_value = Char.code('a') in - let z_value = Char.code('z') in - let str = - if (nb >= 0 && nb <= (z_value - a_value)) then - ("'" ^ (Char.escaped (Char.chr(a_value + nb)))) - else - ("'a" ^ (string_of_int nb)) - in - str - in - str - -let (type_of_string : string -> t) = - function - | "bool" -> Bool - | "real" -> Real - | "float" -> Real - | "int" -> Int - | s -> failwith (s ^ ": unsupported type.\n") - - -type vntl = (string * string) list -type subst = (string * v) - -type access = Idx of int | Fld of ident | Sle of int * int * int * int - - -let get_array_elt a i = - match a with - | A a -> a.(i) - | _ -> assert false - -(* exported *) -let rec (update_val : v -> v -> access list -> v) = - fun pre_v v access -> - match pre_v,access with - | _,[] -> v - | A a, (Sle(f,l,s,w))::access -> ( - let a = Array.copy a in - let j = ref 0 in - let sub_array = Array.make w U in - for i = f to l do - if (i - f) mod s = 0 then ( - sub_array.(!j) <- a.(i); - incr j - ); - done; - let A sub_array = update_val (A sub_array) v access in - j := 0; - for i = f to l do - if (i - f) mod s = 0 then ( - a.(i) <- sub_array.(!j); - incr j - ); - done; - A a - ) - | A a, (Idx i)::access -> - let a = Array.copy a - (* necessary for arrays of arrays. It would probably more - clever to only copy a_i though. *) - in - let a_i = update_val a.(i) v access in - a.(i) <- a_i; - A a - | S(fl), (Fld fn)::access -> - S (List.map - (fun (fn2,v2) -> if fn=fn2 then fn,update_val v2 v access else (fn2,v2)) - fl) - | U,_ -> assert false (* create_val v access *) - | _,_ -> assert false (* finish me *) - - -(* exported *) -let rec (create_u_val : t -> v) = - fun vt -> - match vt with - | Array(vt,size) -> - let a = Array.make size U in - for i=0 to size-1 do - a.(i) <- create_u_val vt - done; - A a - | Struct(sn,fl) -> S(List.map (fun (fn,ft) -> fn, create_u_val ft) fl) - | _ -> U - -(* seems slower (??) *) -let rec (create_val : t -> v -> access list -> v) = - fun vt v access -> - let u_val = create_u_val vt in - update_val u_val v access - -let rec (create_val_alt : t -> v -> access list -> v) = - fun vt v access -> - match vt,access with - | _,[] -> v - | Array(vt,size), (Sle(f,l,s,w))::access -> ( - let j = ref 0 in - let a = Array.make size U in - let vt = Array(vt,w) in - let A sub_array = create_val vt v access in - for i = f to l do - if (i - f) mod s = 0 then ( - a.(i) <- sub_array.(!j); - incr j - ); - done; - A a - ) - | Array(vt,size), (Idx i)::access -> - let a = Array.make size U in - let a_i = create_val vt v access in - a.(i) <- a_i; - A a - | Struct(sn,fl), (Fld fn)::access -> - S(List.map (fun (fn2,vt2) -> if fn=fn2 then fn,create_val vt2 v access else fn2,U) fl) - | _,_ -> assert false - - diff --git a/src/data.mli b/src/data.mli deleted file mode 100644 index b91b8de395056b0529133c2ad007d449e9f8fe4a..0000000000000000000000000000000000000000 --- a/src/data.mli +++ /dev/null @@ -1,30 +0,0 @@ -type ident = string -type v = I of int | F of float | B of bool - | E of ident * int - | A of v array | S of (ident * v) list | U - -type t = - | Bool | Int | Real - | Extern of ident - | Enum of (ident * ident list) - | Struct of ident * (ident * t) list - | Array of (t * int) - | Alpha of int - - -val val_to_string : (float -> string) -> v -> string -val val_to_string_type : v -> string -val type_to_string : t -> string -val type_of_string : string -> t - - -type vntl = (string * string) list -type subst = (string * v) - -type access = Idx of int | Fld of ident | Sle of int * int * int * int - -(* Replace access(pre_v) by v in pre_v *) -val update_val : v -> v -> access list -> v - -(* The same as update_val in the case where no previous value exists *) -val create_val : t -> v -> access list -> v diff --git a/src/evalClock.ml b/src/evalClock.ml index 05bf0e84f5025383fede0e93057bfa780ee6bd51..4bff2f6e7795ffaa3b7d17feeaff126734a2f3a0 100644 --- a/src/evalClock.ml +++ b/src/evalClock.ml @@ -1,4 +1,4 @@ -(* Time-stamp: <modified the 23/05/2013 (at 15:23) by Erwan Jahier> *) +(* Time-stamp: <modified the 25/09/2013 (at 10:58) by Erwan Jahier> *) open AstPredef @@ -71,6 +71,11 @@ open UnifyClock In order to check that this call is correct, we check that both terms are unifiable. + + It also modifies the substitution s (acculumated all along the + clock checking of the node) such that: + - the clock var in the callee parameters migth be be substituted + - ??? what else *) @@ -79,8 +84,10 @@ let (check_args : Lxm.t -> subst -> Lic.id_clock list -> Lic.id_clock list -> su assert (List.length cil_par = List.length cil_arg); let idl_par,cil_par = List.split cil_par and idl_arg,cil_arg = List.split cil_arg in - let s = List.fold_left2 (UnifyClock.f lxm) s cil_arg cil_par in - s + let ns = List.fold_left2 (UnifyClock.f lxm) s cil_arg cil_par in + (* should UnifyClock.f modify the *) + (fst s,snd ns) +(* ns *) (** Checking expression result -------------------------- diff --git a/src/event.ml b/src/event.ml deleted file mode 100644 index b1a8c26e7538a6b73dd9b58c942bc323787f631a..0000000000000000000000000000000000000000 --- a/src/event.ml +++ /dev/null @@ -1,79 +0,0 @@ -type ctx = (* inherited debug info *) - { - ctx_step :int; - ctx_name :string; - ctx_depth:int; - ctx_data: Data.subst list; - ctx_terminate: unit -> unit; - ctx_inputs : string list; - ctx_outputs : string list; - } - - -type src_info = { - str : string ; - file : string ; - line : int * int ; - char : int * int ; - stack : src_info option; -} - - -(* Source info related to the elected constraint *) -type cstr_lazy_src_info = (unit -> src_info list) -type port = - | Call - | Exit of string * Expr.t (* The elected contraint that produced the outputs *) * cstr_lazy_src_info - | Fail of string * Expr.t (* The elected contraint that failed *) * cstr_lazy_src_info * - (unit -> Failure.info) - - -type node_info = { - port : port; - name : string; - lang : string; - inputs : string list; (* static info *) - outputs : string list; (* static info *) -} - -type kind = - | Node of node_info - | Ltop - -(* when an elected constraint is unsatisfiable *) - -type t = { - nb:int; - step : int; - depth : int; - kind : kind; - data : Data.subst list; - other : string; - next : unit -> t; - terminate: unit -> unit; -} - (* ou bien un MapString ? - ou bien une structure avec tout un tas d'autre info ? - devra etre abrait en tout cas - *) - - -exception End of int -let (next : t -> t) = fun e -> e.next () -let (terminate : t -> unit) = fun e -> e.terminate () -let (data : t -> Data.subst list) = fun e -> e.data - - -let seed = ref 42 -let set_seed s = seed := s - -let event_nb = ref 0 -let set_nb i = event_nb := i -let get_nb () = !event_nb -let incr_nb() = - Random.init (!seed + !event_nb); (* make sure everything is reproductible *) - incr event_nb - - - - diff --git a/src/expr.ml b/src/expr.ml deleted file mode 100644 index e347e1802b4865f00cd670de4d496c0f2f782c3d..0000000000000000000000000000000000000000 --- a/src/expr.ml +++ /dev/null @@ -1,86 +0,0 @@ - - -(* Expressions *) -type t = - | Op of oper * t list - | True | False - | Ival of Num.num | Fval of float - | Var of string -and - oper = - | And | Or | Xor | Impl | Not | Eq | Ite - | Sup | SupEq | Inf | InfEq - | Sum | Diff | Prod | Quot | Mod | Div | Uminus - | Call of string - -let (to_string : t -> string) = - fun t -> - let rec aux b t = - let b = " "^b in - (match t with - | Op(And,[e1;e2]) -> (aux b e1)^" and " ^(aux b e2) - | Op(Or,[e1;e2]) -> "("^(aux b e1)^" or " ^(aux b e2) ^ ")" - | Op(Xor,[e1;e2]) -> "("^(aux b e1)^" xor" ^(aux b e2) ^ ")" - | Op(Impl,[e1;e2]) -> "("^(aux b e1)^" =>" ^(aux b e2) ^ ")" - | Op(Not,[e]) -> "not(" ^(aux b e) ^")" - | Op(Eq,[e1;e2]) -> (aux b e1)^ "=" ^(aux b e2) - (* | Op(Ite,[c;e1;e2]) -> "("^(aux b e1)^"ite" ^(aux b e2) *) - | Op(Sup,[e1;e2]) -> (aux b e1)^">" ^(aux b e2) - | Op(SupEq,[e1;e2]) -> (aux b e1)^">=" ^(aux b e2) - | Op(Inf,[e1;e2]) -> (aux b e1)^"<" ^(aux b e2) - | Op(InfEq,[e1;e2]) -> (aux b e1)^"<=" ^(aux b e2) - | Op(Sum,[e1;e2]) -> "("^(aux b e1)^"+" ^(aux b e2) ^ ")" - | Op(Diff,[e1;e2]) -> "("^(aux b e1)^"-" ^(aux b e2) ^ ")" - | Op(Prod,[e1;e2]) -> (aux b e1)^"*" ^(aux b e2) - | Op(Quot,[e1;e2]) -> (aux b e1)^"/" ^(aux b e2) - | Op(Mod,[e1;e2]) -> "("^(aux b e1)^"mod" ^(aux b e2) ^ ")" - | Op(Div,[e1;e2]) -> (aux b e1)^"/" ^(aux b e2) - - | Op (op,l) -> (oper_aux b op) ^ "(\n"^b ^ - ((String.concat (",\n"^b) (List.map (aux b) l))^"\n"^b^")") - | True -> "t" - | False -> "f" - | Ival(n) -> Num.string_of_num n - | Fval(f) -> string_of_float f - | Var(str) -> str - ) - and - oper_aux b = function - | And -> "and" - | Or -> "or" - | Xor -> "xor" - | Impl -> "impl" - | Not -> "not" - | Eq -> "eq" - | Ite -> "ite" - | Sup -> "sup" - | SupEq -> "supeq" - | Inf -> "inf" - | InfEq -> "infeq" - | Sum -> "sum" - | Diff -> "diff" - | Prod -> "prod" - | Quot -> "quot" - | Mod -> "mod" - | Div -> "div" - | Uminus -> "uminus" - | Call str -> str - in - aux "" t - -let dump e = - print_string ((to_string e)^ "\n") - -let rec (simplify : t -> t) = - fun t -> - match t with - | Op(And, (Op(And,l)::tail)) -> simplify (Op(And, (l@tail))) - | Op(Or, (Op(Or,l)::tail)) -> simplify (Op(Or, (l@tail))) - | Op(Sum, (Op(Sum,l)::tail)) -> simplify (Op(Sum, (l@tail))) - | Op(Not,[Op(Not, [e])]) -> simplify e - | Op(Not,[Op(Sup, [e1;e2])]) -> Op(InfEq, [simplify e1;simplify e2]) - | Op(Not,[Op(Inf, [e1;e2])]) -> Op(SupEq, [simplify e1;simplify e2]) - | Op(Not,[Op(SupEq, [e1;e2])]) -> Op(Inf, [simplify e1;simplify e2]) - | Op(Not,[Op(InfEq, [e1;e2])]) -> Op(Sup, [simplify e1;simplify e2]) - | Op (op,l) -> Op (op, List.map simplify l) - | e -> e diff --git a/src/failure.ml b/src/failure.ml deleted file mode 100644 index 0a615036b68ecde57eef76b9e6171e3439d2a920..0000000000000000000000000000000000000000 --- a/src/failure.ml +++ /dev/null @@ -1,8 +0,0 @@ - - - -(* exported *) -type info = - | Boolean of Expr.t - | Numeric of Expr.t - diff --git a/src/genOcamlGlue.ml b/src/genOcamlGlue.ml new file mode 100644 index 0000000000000000000000000000000000000000..1ff584d73ebeca4aa3194d54b20ccf60b6de1686 --- /dev/null +++ b/src/genOcamlGlue.ml @@ -0,0 +1,30 @@ +(* Time-stamp: <modified the 26/03/2014 (at 16:17) by Erwan Jahier> *) + +(* generate ocaml glue code that makes it possible to call lus2lic + from ocaml with the current set of arguments (with Lus2licRun.make). +*) +let (f: string array -> Lv6MainArgs.t -> unit) = + fun argv opt -> + let outfile = if opt.outfile <> "" then opt.outfile else + let file = List.hd opt.infiles in + try (Filename.chop_extension (Filename.basename file))^ ".ml" + with _ -> + print_string ("*** '"^file^"': bad file name.\n"); exit 2 + in + let cma_file = (Filename.chop_extension outfile) ^".cma" in + let remove_me = ["-exec"; "-ocaml";"-o";opt.outfile] in + let args = + Array.fold_right (fun x acc -> if List.mem x remove_me then acc else x::acc) argv [] + in + let args_str = "\"" ^ (String.concat "\";\"" args) ^"\"" in + let oc = open_out (outfile) in + Lv6util.dump_entete oc; + Printf.fprintf oc " +let plugin = + let args = Array.of_list [%s] in + Lus2licRun.make args + +let dyn_file = (Dynlink.adapt_filename \"%s\") +let _ = + OcamlRM.reg_plugin dyn_file plugin +" args_str cma_file diff --git a/src/l2lExpandMetaOp.ml b/src/l2lExpandMetaOp.ml index 2ca80d60df62ea0b9a4d89dee4460c6d2a451e8b..1f4ee19160ab01173eeb8f8d3eb97d2c9daed081 100644 --- a/src/l2lExpandMetaOp.ml +++ b/src/l2lExpandMetaOp.ml @@ -1,4 +1,4 @@ -(** Time-stamp: <modified the 04/06/2013 (at 14:43) by Erwan Jahier> *) +(** Time-stamp: <modified the 22/01/2014 (at 16:39) by Erwan Jahier> *) open Lxm open Lic @@ -104,6 +104,14 @@ let (binop_to_val_exp : Ident.t -> val_exp -> val_exp -> val_exp) = ve_typ = ve1.ve_typ; ve_core = CallByPosLic(op, [ve1; ve2]) } +let (binop_to_val_exp_bool : Ident.t -> val_exp -> val_exp -> val_exp) = + fun op ve1 ve2 -> + let op = { it = PREDEF_CALL({src=lxm;it=("Lustre",op),[]}) ; src = lxm } in + { + ve_clk = ve1.ve_clk; + ve_typ = [Bool_type_eff]; + ve_core = CallByPosLic(op, [ve1; ve2]) + } let (fby_to_val_exp : val_exp -> val_exp -> val_exp) = fun ve1 ve2 -> let op = { it = FBY ; src = lxm } in @@ -302,11 +310,11 @@ let (create_boolred_body: local_ctx -> int -> int -> int -> Lic.node_body * var_ <=> node toto(tab:bool^n) returns (res:bool); var - cpt:int; - let - cpt = (if tab[0] then 1 else 0) + ... + (if tab[k-1] then 1 else 0); - res = i <= cpt && cpt <= j; - tel + cpt:int; + let + cpt = (if tab[0] then 1 else 0) + ... + (if tab[k-1] then 1 else 0); + res = i <= cpt && cpt <= j; + tel *) assert(0 <= i && i <= j && j <= k && k>0); let (tab_vi : var_info) = match lctx.node.Lic.inlist_eff with @@ -336,8 +344,8 @@ let (create_boolred_body: local_ctx -> int -> int -> int -> Lic.node_body * var_ let i_eff = val_exp_of_int (string_of_int i) in let j_eff = val_exp_of_int (string_of_int j) in let cpt_eff = val_exp_of_var_info cpt_vi in - let i_inf_cpt = binop_to_val_exp "lte" i_eff cpt_eff in - let cpt_inf_j = binop_to_val_exp "lte" cpt_eff j_eff in + let i_inf_cpt = binop_to_val_exp_bool "lte" i_eff cpt_eff in + let cpt_inf_j = binop_to_val_exp_bool "lte" cpt_eff j_eff in binop_to_val_exp "and" i_inf_cpt cpt_inf_j in let cpt_eq = { src = lxm ; it = ([cpt_left], cpt_rigth) } in diff --git a/src/l2lExpandNodes.ml b/src/l2lExpandNodes.ml index e6597dc5388cf2a66411c6f90ed02a93bc69826d..73dcd22444f052799c5894ceeb4816dc054ad988 100644 --- a/src/l2lExpandNodes.ml +++ b/src/l2lExpandNodes.ml @@ -1,4 +1,4 @@ -(* Time-stamp: <modified the 22/05/2013 (at 11:17) by Erwan Jahier> *) +(* Time-stamp: <modified the 24/09/2013 (at 10:56) by Erwan Jahier> *) open Lxm @@ -31,7 +31,9 @@ let new_var str lctx type_eff clock_eff = var_clock_eff = clock_eff; } in - var +(* let clk_str = string_of_clock (snd clock_eff) in *) +(* print_string (" ===> creating "^id^ " from " ^ str^ " with clock " ^clk_str ^ "\n");flush stdout; *) + var (********************************************************************************) let get_locals node = @@ -271,7 +273,6 @@ and (expand_eq_aux: local_ctx -> Lic.eq_info -> local_ctx * acc option)= in let clks = List.map (fun v -> substitute_clock (snd v.var_clock_eff)) node_locs in let fresh_locs = List.map2 (mk_fresh_loc lctx) node_locs clks in - let ls = mk_loc_subst node_locs fresh_locs in let s = List.rev_append is (List.rev_append os ls) in let fresh_locs = (* substitute the new vars in clocks *) @@ -320,7 +321,7 @@ and (expand_node : local_ctx -> Lic.node_exp -> local_ctx * Lic.node_exp) = let lctx,acc = List.fold_left expand_eq (lctx, ([],[],locs)) b.eqs_eff in let lctx,acc = List.fold_left expand_assert (lctx, acc) b.asserts_eff in let (asserts,neqs, nv) = acc in - let nb = { + let nb = { eqs_eff = neqs ; asserts_eff = asserts } diff --git a/src/l2lSplit.ml b/src/l2lSplit.ml index a840593dd69dca45550df8cadcaf0abe8c8c673c..3525ec57270f01f971b25bb9afc28afdda1f6164 100644 --- a/src/l2lSplit.ml +++ b/src/l2lSplit.ml @@ -11,6 +11,9 @@ open Lxm open Lic let dbg = (Verbose.get_flag "split") +let info msg = + let t = Sys.time() in + Verbose.exe ~flag:dbg (fun () -> Printf.eprintf "%4.4f: %s%!" t msg) (********************************************************************************) let new_var getid type_eff clock_eff = @@ -143,7 +146,7 @@ let (split_tuples:Lic.eq_info Lxm.srcflagged list -> Lic.eq_info Lxm.srcflagged else [eq] in - List.flatten (List.map split_one_eq eql) + List.fold_left (fun acc eq -> List.rev_append (split_one_eq eq) acc) [] eql (********************************************************************************) (* The functions below accumulate @@ -157,12 +160,13 @@ let rec (eq : LicPrg.id_generator -> Lic.eq_info Lxm.srcflagged -> split_acc) = let n_rhs, (neqs, nlocs) = split_val_exp false true getid rhs in { src = lxm_eq ; it = (lhs, n_rhs) }::neqs, nlocs -and (split_eq_acc : +and (split_eq_acc : LicPrg.id_generator -> split_acc -> Lic.eq_info srcflagged -> split_acc) = - fun getid (eqs, locs) equation -> + fun getid (eqs, locs) equation -> let (neqs, nlocs) = eq getid equation in - (split_tuples (eqs@neqs), locs@nlocs) - + let neqs = split_tuples neqs in + List.rev_append neqs eqs, List.rev_append nlocs locs + and (split_val_exp : bool -> bool -> LicPrg.id_generator -> Lic.val_exp -> Lic.val_exp * split_acc) = fun when_flag top_level getid ve -> @@ -308,8 +312,9 @@ and (split_val_exp_list : bool -> and split_node (getid: LicPrg.id_generator) (n: Lic.node_exp) : Lic.node_exp = Verbose.exe ~flag:dbg (fun () -> - Printf.printf "*** Splitting node %s\n" - (LicDump.string_of_node_key_iter n.node_key_eff)); + Printf.eprintf "*** Splitting node %s\n" + (LicDump.string_of_node_key_iter n.node_key_eff); + flush stderr); let res = match n.def_eff with | ExternLic | MetaOpLic @@ -319,6 +324,9 @@ and split_node (getid: LicPrg.id_generator) (n: Lic.node_exp) : Lic.node_exp = | BodyLic b -> let loc = match n.loclist_eff with None -> [] | Some l -> l in let (neqs, nv) = List.fold_left (split_eq_acc getid) ([], loc) b.eqs_eff in + info (Printf.sprintf "Split %i equations into %i ones\n" + (List.length b.eqs_eff)(List.length neqs)); + let asserts = List.map (fun x -> x.it) b.asserts_eff in let lxm_asserts = List.map (fun x -> x.src) b.asserts_eff in let nasserts,(neqs_asserts,nv_asserts) = @@ -353,8 +361,7 @@ let rec doit (inprg : LicPrg.t) : LicPrg.t = (** TRAITE LES NOEUDS : *) let rec do_node k (ne:Lic.node_exp) = (* On passe en parametre un constructeur de nouvelle variable locale *) - Verbose.exe ~flag:dbg (fun() -> Printf.printf "#DBG: split equations of '%s'\n" - (Lic.string_of_node_key k)); + info (Printf.sprintf "#DBG: split equations of '%s'\n" (Lic.string_of_node_key k)); let getid = LicPrg.fresh_var_id_generator inprg ne in let ne' = split_node getid ne in res := LicPrg.add_node k ne' !res diff --git a/src/lic2soc.ml b/src/lic2soc.ml index 6896b1f10e5f1c30e8bf5a334721c860cfd63ddc..f5707afa390d11b6d65b174a5c37fd4604f8d708 100644 --- a/src/lic2soc.ml +++ b/src/lic2soc.ml @@ -1,4 +1,4 @@ -(** Time-stamp: <modified the 06/06/2013 (at 10:13) by Erwan Jahier> *) +(** Time-stamp: <modified the 21/05/2014 (at 10:51) by Erwan Jahier> *) open Lxm open Lic @@ -646,6 +646,10 @@ let (actions_of_equation: Lxm.t -> Soc.tbl -> ctx -> Lic.eq_info -> (*********************************************************************************) open Soc +let info msg = + let t = Sys.time() in + Verbose.exe ~level:1 (fun () -> Printf.eprintf "%4.4f: %s%!" t msg; flush stderr) + let rec f: (LicPrg.t -> Lic.node_key -> Soc.key * Soc.tbl) = fun prog mnk -> let rec (process_node : Lic.node_key -> Soc.tbl -> Soc.key * Soc.tbl) = @@ -738,6 +742,7 @@ let rec f: (LicPrg.t -> Lic.node_key -> Soc.key * Soc.tbl) = (** Produit des soc de noeuds. *) and (soc_of_node: LicPrg.t -> Lic.node_exp -> Soc.tbl -> (ctx * Soc.t * Soc.tbl) option) = fun licprg node soc_tbl -> + info "Lic2soc.soc_of_node...\n"; let io_list = node.Lic.inlist_eff @ node.Lic.outlist_eff in let io_type = List.map (fun vi -> lic_to_data_type vi.var_type_eff) io_list in let soc_key = make_soc_key_of_node_exp node.Lic.node_key_eff None io_type in @@ -756,23 +761,29 @@ let rec f: (LicPrg.t -> Lic.node_key -> Soc.key * Soc.tbl) = b.eqs_eff in (* Construction des dépendances entre les expressions *) - let all_deps = ActionsDeps.build_data_deps_from_actions lic_to_data_type deps actions in + info "Lic2soc.soc_of_node: computing dependencies...\n"; + let all_deps = + ActionsDeps.build_data_deps_from_actions lic_to_data_type deps actions + in Verbose.exe ~flag:dbg (fun () -> print_string (ActionsDeps.to_string all_deps); flush stdout); let actions = - try Toposort.f - ActionsDeps.string_of_action_simple actions (ActionsDeps.find_deps all_deps) - with Toposort.DependencyCycle(x,l) -> + info "Lic2soc.soc_of_node: sorting actions...\n"; + try ActionsDeps.topo_sort actions all_deps + with ActionsDeps.DependencyCycle(x,l) -> + let l = List.map ActionsDeps.string_of_action_simple l in let msg = "A combinational cycle been detected "^ - (Lxm.details lxm)^": \n "^x^"\n "^(String.concat "\n " l) + (Lxm.details lxm)^" on \n "^(ActionsDeps.string_of_action_simple x)^ + "\n "^(String.concat "\n " l) ^ "\n\nHint: try to use --expand-nodes.\n" in raise (Lv6errors.Global_error msg) - in + in let (locals: Soc.var list) = match node.Lic.loclist_eff with | None -> [] | Some l -> List.map (lic_to_soc_var) l in + info "Lic2soc.soc_of_node: actions sorted. \n"; let step = build_step lxm "step" node (locals @ ctx.locals) actions in let soc = { Soc.key = soc_key; @@ -828,13 +839,13 @@ let rec f: (LicPrg.t -> Lic.node_key -> Soc.key * Soc.tbl) = ) | ("condact"), [ ConstStaticArgLic("dflt",Tuple_const_eff vel);NodeStaticArgLic("oper",condact_node) - ] -> ( + ] -> ( let soc_tbl,soc = make_condact_soc node condact_node soc_key soc_tbl ctx lxm vel in Some(ctx, soc, soc_tbl) ) | ("condact"), [ ConstStaticArgLic("dflt",const); NodeStaticArgLic ("oper",condact_node) - ] -> ( + ] -> ( let soc_tbl,soc = make_condact_soc node condact_node soc_key soc_tbl ctx lxm [const] in Some(ctx, soc, soc_tbl) ) diff --git a/src/licDump.mli b/src/licDump.mli deleted file mode 100644 index 2eaf7291828bd3bab6f7a9c6f17ab21db77f4e79..0000000000000000000000000000000000000000 --- a/src/licDump.mli +++ /dev/null @@ -1,33 +0,0 @@ -(* Time-stamp: <modified the 24/04/2013 (at 17:41) by Erwan Jahier> *) - - -val string_of_node_key_rec : bool -> Lic.node_key -> string -val string_of_node_key_iter : Lic.node_key -> string -val node_of_node_exp_eff: Lic.node_exp -> string - -val string_of_const_eff : Lic.const -> string -val string_of_leff : Lic.left -> string - -val string_of_type_eff : Lic.type_ -> string -val string_of_type_eff4msg : Lic.type_ -> string -val string_of_type_eff_list : Lic.type_ list -> string -val string_of_type_eff_list4msg : Lic.type_ list -> string -val type_eff_list_to_string :Lic.type_ list -> string - -val type_decl: Ident.long -> Lic.type_ -> string -val const_decl: Ident.long -> Lic.const -> string - -val string_of_var_info_eff: Lic.var_info -> string -val string_of_var_info_eff4msg: Lic.var_info -> string -val type_string_of_var_info_eff: Lic.var_info -> string -val type_string_of_var_info_eff4msg: Lic.var_info -> string -val string_of_slice_info_eff : Lic.slice_info -> string - -(* used for error msgs *) -val string_of_clock_exp : AstCore.clock_exp -> string -val string_of_clock2 : Lic.clock -> string -val string_of_val_exp_eff : Lic.val_exp -> string -val string_of_val_exp_eff_core : Lic.val_exp_core -> string - -(* dump Lic.local_env *) -val dump_local_env : Lic.local_env -> unit diff --git a/src/licTab.ml b/src/licTab.ml index 4756e527f1467fb1a83bcb66ffdb79773e14a842..3e5c9402dbde4d8fa338cd992f5727c575873873 100644 --- a/src/licTab.ml +++ b/src/licTab.ml @@ -1,4 +1,4 @@ -(* Time-stamp: <modified the 16/05/2013 (at 11:05) by Erwan Jahier> *) +(* Time-stamp: <modified the 23/09/2013 (at 17:47) by Erwan Jahier> *) open Lxm @@ -161,38 +161,38 @@ let (create : AstTab.t -> t) = *) let x_check - (* tab find_x x_check_do lookup_x_eff pack_of_x_key name_of_x_key this x_key lxm = *) - (tab : ('x_key, 'x_eff Lic.check_flag) Hashtbl.t) - (find_x : AstTabSymbol.t -> Ident.t -> Lxm.t -> ('x_info Lxm.srcflagged) AstTabSymbol.elt) - (x_check_do : t -> 'x_key -> Lxm.t -> AstTabSymbol.t -> bool -> Ident.pack_name -> 'x_info srcflagged -> 'x_eff) - (x_builtin : t -> 'x_key -> Lxm.t -> 'x_eff) - (lookup_x_eff : ('x_key, 'x_eff Lic.check_flag) Hashtbl.t -> 'x_key -> Lxm.t -> 'x_eff) - (pack_of_x_key : 'x_key -> string ) - (name_of_x_key : 'x_key -> string) - (this : t) - (x_key : 'x_key) - (lxm : Lxm.t) -: 'x_eff = - Verbose.exe ~flag:dbg (fun () -> Printf.printf "#DBG: licTab.x_check '%s'\n" (Lxm.details lxm)); - try lookup_x_eff tab x_key lxm - with Not_found -> ( - let res = try x_builtin this x_key lxm - with Not_found -> - Hashtbl.add tab x_key Lic.Checking; - let (x_pack,xn) = (pack_of_x_key x_key, name_of_x_key x_key) in - let x_pack_symbols = AstTab.pack_body_env this.src_tab x_pack in - let x_def = match find_x x_pack_symbols xn lxm with - | AstTabSymbol.Local x_def -> x_def - | AstTabSymbol.Imported (lid,_) -> - print_string ("*** " ^ (Ident.string_of_long2 lid) ^ "???\n" ^ - (Lxm.details lxm)); - assert false (* should not occur *) - in - x_check_do this x_key lxm x_pack_symbols false x_pack x_def - in - Hashtbl.replace tab x_key (Lic.Checked res); - res - ) + (* tab find_x x_check_do lookup_x_eff pack_of_x_key name_of_x_key this x_key lxm = *) + (tab : ('x_key, 'x_eff Lic.check_flag) Hashtbl.t) + (find_x : AstTabSymbol.t -> Ident.t -> Lxm.t -> ('x_info Lxm.srcflagged) AstTabSymbol.elt) + (x_check_do : t -> 'x_key -> Lxm.t -> AstTabSymbol.t -> bool -> Ident.pack_name -> 'x_info srcflagged -> 'x_eff) + (x_builtin : t -> 'x_key -> Lxm.t -> 'x_eff) + (lookup_x_eff : ('x_key, 'x_eff Lic.check_flag) Hashtbl.t -> 'x_key -> Lxm.t -> 'x_eff) + (pack_of_x_key : 'x_key -> string ) + (name_of_x_key : 'x_key -> string) + (this : t) + (x_key : 'x_key) + (lxm : Lxm.t) + : 'x_eff = + Verbose.exe ~flag:dbg (fun () -> Printf.printf "#DBG: licTab.x_check '%s'\n" (Lxm.details lxm)); + try lookup_x_eff tab x_key lxm + with Not_found -> ( + let res = try x_builtin this x_key lxm + with Not_found -> + Hashtbl.add tab x_key Lic.Checking; + let (x_pack,xn) = (pack_of_x_key x_key, name_of_x_key x_key) in + let x_pack_symbols = AstTab.pack_body_env this.src_tab x_pack in + let x_def = match find_x x_pack_symbols xn lxm with + | AstTabSymbol.Local x_def -> x_def + | AstTabSymbol.Imported (lid,_) -> + print_string ("*** " ^ (Ident.string_of_long2 lid) ^ "???\n" ^ + (Lxm.details lxm)); + assert false (* should not occur *) + in + x_check_do this x_key lxm x_pack_symbols false x_pack x_def + in + Hashtbl.replace tab x_key (Lic.Checked res); + res + ) let x_check_interface tab find_x x_check x_check_interface_do x_builtin lookup_x_eff diff --git a/src/lus2licRun.ml b/src/lus2licRun.ml new file mode 100644 index 0000000000000000000000000000000000000000..3e6096372ba4769172527fbac923419c1278ba8d --- /dev/null +++ b/src/lus2licRun.ml @@ -0,0 +1,101 @@ +(* Time-stamp: <modified the 26/03/2014 (at 16:12) by Erwan Jahier> *) +(*----------------------------------------------------------------------- +** Copyright (C) - Verimag. +*) + +type vars = (string * Data.t) list + +open Lv6MainArgs +open Soc +open SocExecValue +open RdbgPlugin + +let make argv = + let opt = Lv6MainArgs.parse argv in + let node = opt.main_node in + Verbose.exe ~level:3 (fun () -> + Gc.set { (Gc.get ()) with Gc.verbose = 0x01 } + ); + if (opt.infiles = []) then ( + Lv6MainArgs.usage stderr opt; + exit 1 + ); + let new_dft_pack = Filename.basename (Filename.chop_extension (List.hd opt.infiles)) in + Ident.set_dft_pack_name new_dft_pack; + + let main_node = + if opt.main_node = "" then None else + Some (Ident.idref_of_string opt.main_node) + in + if opt.outfile <> "" then opt.oc <- open_out opt.outfile; + let nsl = Compile.get_source_list opt opt.infiles in + let lic_prg = Compile.doit opt nsl main_node in + + let first_file = List.hd opt.infiles in + let nk = (Lic.node_key_of_idref (Ident.to_idref opt.main_node)) in + let sk, soc_tbl = + if LicPrg.node_exists lic_prg nk then ( + Lic2soc.f lic_prg nk + ) else ( + print_string ("Error: cannot find node "^opt.main_node^" in "^ + (String.concat "," opt.infiles)^".\n"); + flush stdout; + exit 1 + ) + in + let soc = try Soc.SocMap.find sk soc_tbl with Not_found -> assert false in + let soc_inputs = (SocExec.expand_profile false (fst soc.profile)) in + let soc_outputs = (SocExec.expand_profile true (snd soc.profile)) in + let (vntl_i:Data.vntl) = (fst soc.profile) in + let (vntl_o:Data.vntl) = (snd soc.profile) in + let oc = stdout in + (* Lv6util.dump_entete oc; *) + (* RifIO.write_interface oc vntl_i vntl_o None None; *) + (* RifIO.flush oc; *) + + let (to_soc_subst : SocExecValue.ctx -> Soc.var list -> Data.subst list) = + fun ctx vl -> + (* let sl = List.map (fun var -> fst var, SocExecValue.get_value ctx (Var var)) vl in *) + let sl = SocExecValue.filter_top_subst ctx.s in + let sl = List.flatten (List.map SocExec.expand_subst sl) in + (* If the order ever matters, I could try the following. : + try List.map (fun v -> fst v, + List.assoc (fst v) sl) vl with Not_found -> assert false + *) + sl + in + let (add_subst : Data.subst list -> SocExecValue.substs -> SocExecValue.substs) = + fun s ctx_s -> + let s = SocExec.unexpand_profile s (fst soc.profile) in + List.fold_left (fun acc (id,v) -> SocExecValue.sadd acc [id] v) ctx_s s + in + let ctx_ref = ref (SocExecValue.create_ctx soc_tbl soc) in + let step sl_in = + let ctx = { !ctx_ref with s = add_subst sl_in !ctx_ref.s } in + let ctx = SocExec.do_step soc_tbl soc ctx in + let sl_out = to_soc_subst ctx soc_outputs in + ctx_ref := ctx; + (* RifIO.write_outputs oc Util.my_string_of_float vntl_o sl_out; *) + (* RifIO.flush oc; *) + sl_out + in + let step_dbg sl_in ectx cont = + let cont2 ctx = + let sl_out = to_soc_subst ctx soc_outputs in + ctx_ref := ctx; + cont sl_out ectx + in + ctx_ref := { !ctx_ref with s = add_subst sl_in !ctx_ref.s }; + SocExec.do_step_dbg soc_tbl soc ectx !ctx_ref cont2 + in + let (mems_in : Data.subst list) = [] in (* XXX todo *) + let (mems_out : Data.subst list) = [] in (* XXX todo *) + { + inputs = vntl_i; + outputs= vntl_o; + kill=(fun _ -> ()); + init_inputs=mems_in; + init_outputs=mems_out; + step=step; + step_dbg=step_dbg; + } diff --git a/src/lus2licRun.mli b/src/lus2licRun.mli new file mode 100644 index 0000000000000000000000000000000000000000..98c7986046b36455f04058c2ee4817993710df25 --- /dev/null +++ b/src/lus2licRun.mli @@ -0,0 +1,3 @@ +(* Time-stamp: <modified the 26/03/2014 (at 16:12) by Erwan Jahier> *) + +val make: string array -> RdbgPlugin.t diff --git a/src/lv6MainArgs.ml b/src/lv6MainArgs.ml index 3580ca4d04e4a043e076f0a352c88c7021f563d2..6da27780565b8a686167302532cb708994639154 100644 --- a/src/lv6MainArgs.ml +++ b/src/lv6MainArgs.ml @@ -1,3 +1,4 @@ +(* Time-stamp: <modified the 17/04/2014 (at 15:03) by Erwan Jahier> *) (* Le manager d'argument adapté de celui de lutin, plus joli N.B. solution un peu batarde : les options sont stockées, comme avant, dans Global, @@ -22,6 +23,7 @@ type t = { mutable main_node : string; mutable compile_all_items : bool; mutable run_unit_test : bool; + mutable print_interface : bool; mutable inline_iterator : bool; mutable expand_nodes : bool; mutable dont_expand_nodes : string list; @@ -30,6 +32,9 @@ type t = { mutable oc : Pervasives.out_channel; mutable tlex : bool; mutable exec : bool; + mutable gen_c : bool; + mutable rif : bool; + mutable gen_ocaml : bool; mutable precision : int option; } @@ -70,6 +75,7 @@ let (make_opt : unit -> t) = main_node = ""; compile_all_items = true; run_unit_test = false; + print_interface = false; inline_iterator = false; expand_nodes = false; dont_expand_nodes = []; @@ -79,6 +85,9 @@ let (make_opt : unit -> t) = oc = Pervasives.stdout; tlex = false; exec = false; + gen_c = false; + rif = false; + gen_ocaml = false; precision = None; } @@ -187,30 +196,45 @@ let set_ec_options opt = (*** USER OPTIONS TAB **) let mkoptab (opt:t) : unit = ( mkopt opt - ["-n";"-node"] - ~arg:" <string>" + ["-n";"-node"] ~arg:" <string>" (Arg.String(function x -> opt.main_node <- x; opt.compile_all_items <- false)) ["Set the main node (all items are compiled if unset)"] ; - mkopt opt - ["-o";"--output-file"] - ~arg:" <string>" - (Arg.String(function x -> - opt.outfile <- x)) + mkopt opt ["-o";"--output-file"] ~arg:" <string>" + (Arg.String(function x -> opt.outfile <- x)) ["Set the output file name"] ; mkopt opt ["-exec"] - (Arg.Unit (fun _ -> opt.exec <- true)) + (Arg.Unit (fun _ -> + opt.exec <- true)) ["interpret the program using RIF conventions for I/O (experimental)."] ; + mkopt opt + ["--to-c"; "-2c"] + (Arg.Unit (fun _ -> + opt.gen_c <- true)) + ["generate C code (work in progress)."] + ; + mkopt opt + ["-rif"] + (Arg.Unit(function s -> opt.rif <- true)) + ["behave as a rif input file (meaningless without -exec)"] + ; + mkopt opt + ["-ocaml"] + (Arg.Unit(function s -> opt.gen_ocaml <- true)) + ["generate ocaml glue code that makes it possible to call the lus2lic interpreter "; + "from ocaml with the current set of arguments (with Lus2licRun.make)."] + ; mkopt opt ["-knc"; "--keep-nested-calls"] (Arg.Unit (fun _ -> global_opt.one_op_per_equation <- false)) - ["Keep nested calls (inhibited by -en). By default, only one node per equation is generated."] + ["Keep nested calls (inhibited by -en). By default, only one node "; + "per equation is generated."] ; mkopt opt ["-ei"; "--expand-iterators"] @@ -306,6 +330,11 @@ let mkoptab (opt:t) : unit = ( ["Test the syntactic analysis"] ; *) + mkopt opt ~hide:true + ["-interface"] + (Arg.Unit (fun () -> opt.print_interface<-true)) + ["Print the node interface"] + ; mkopt opt ~hide:true ["-unit"] (Arg.Unit (fun () -> opt.run_unit_test<-true)) diff --git a/src/lv6MainArgs.mli b/src/lv6MainArgs.mli index c83301abec664ab53aa4d5c2320482c14f7bcc36..b7dbee86216310c70cd38d20d363d5680bb6de0e 100644 --- a/src/lv6MainArgs.mli +++ b/src/lv6MainArgs.mli @@ -19,6 +19,7 @@ type t = { mutable main_node : string; mutable compile_all_items : bool; mutable run_unit_test : bool; + mutable print_interface : bool; mutable inline_iterator : bool; mutable expand_nodes : bool; mutable dont_expand_nodes : string list; @@ -27,6 +28,9 @@ type t = { mutable oc : Pervasives.out_channel; mutable tlex : bool; mutable exec : bool; + mutable gen_c : bool; + mutable rif : bool; + mutable gen_ocaml : bool; mutable precision : int option; } diff --git a/src/lv6util.ml b/src/lv6util.ml index 46fe5c0a59f9cc4eb6f51e4533a0d36ffe5c64e1..3ddca881c1184e109be1f7fea2ea7573375dabec 100644 --- a/src/lv6util.ml +++ b/src/lv6util.ml @@ -29,9 +29,9 @@ let (dump_entete : out_channel -> unit) = (* Printf.fprintf oc "-- lus2lic version %s\n" LustreVersion.str; *) (* Printf.fprintf oc "-- cmd: %s\n" sys_call; *) (* Printf.fprintf oc "-- host: %s date: %s time: %s\n" hostname date time_str *) - Printf.fprintf oc "-- This file was generated by lus2lic version %s.\n" Lv6version.str; - Printf.fprintf oc "-- %s\n" sys_call; - Printf.fprintf oc "-- on %s the %s at %s\n" hostname date time_str + Printf.fprintf oc "(* This file was generated by lus2lic version %s. *)\n" Lv6version.str; + Printf.fprintf oc "(* %s *)\n" sys_call; + Printf.fprintf oc "(* on %s the %s at %s *)\n" hostname date time_str let rec pos_in_list i x l = diff --git a/src/main.ml b/src/main.ml index 2ba7e7995a8c5e31a106445e721985cd9fd0902c..d9c712944ffad1aa54ca128f4ef0ed675409818a 100644 --- a/src/main.ml +++ b/src/main.ml @@ -1,4 +1,4 @@ -(* Time-stamp: <modified the 27/05/2013 (at 16:53) by Erwan Jahier> *) +(* Time-stamp: <modified the 17/04/2014 (at 15:20) by Erwan Jahier> *) open Verbose open AstV6 @@ -7,9 +7,10 @@ open Lxm open Lv6errors open Parsing open Format - open Lv6MainArgs + let my_exit opt i = + if opt.rif || opt.print_interface then (output_string opt.oc "\nq\n"; flush opt.oc); close_out opt.oc; if Sys.file_exists opt.outfile then Sys.remove opt.outfile; exit i @@ -31,6 +32,46 @@ let find_a_node opt = name +let (gen_rif_interface : LicPrg.t -> Ident.idref option -> Lv6MainArgs.t -> unit) = + fun lic_prg main_node opt -> + let msk, zesoc, main_node = + match main_node with + | None -> ( + let name = find_a_node opt in + let main_node = Ident.to_idref name in + let nk = (Lic.node_key_of_idref main_node) in + if LicPrg.node_exists lic_prg nk then ( + output_string stdout ("WARNING: No main node is specified. I'll try with " + ^ name ^"\n"); + flush stdout; + let msk, zesoc = Lic2soc.f lic_prg nk in + msk, zesoc, main_node + ) else ( + print_string ("Error: no node is specified.\n"); + flush stdout; + exit 1 + ) + ) + | Some main_node -> + let msk, zesoc = Lic2soc.f lic_prg (Lic.node_key_of_idref main_node) in + msk, zesoc, main_node + in + let my_type_to_string t = + let str = Data.type_to_string t in + let idref = Ident.idref_of_string str in + (idref.Ident.id_id) + in + let soc = try Soc.SocMap.find msk zesoc with Not_found -> assert false in + let invars,outvars=soc.Soc.profile in + let invars = SocExec.expand_profile false invars in + let outvars = SocExec.expand_profile true outvars in + let invars_str = List.map (fun (n,t) -> n^":"^(my_type_to_string t)) invars in + let outvars_str = List.map (fun (n,t) -> n^":"^(my_type_to_string t)) outvars in + print_string ("#inputs "^ (String.concat " " invars_str) ^"\n"); + print_string ("#outputs "^ (String.concat " " outvars_str) ^"\n"); + flush stdout + + (* Generates a lutin env and a lustre oracle for the node *) let (gen_autotest_files : LicPrg.t -> Ident.idref option -> Lv6MainArgs.t -> unit) = fun lic_prg main_node opt -> @@ -130,6 +171,10 @@ let (gen_autotest_files : LicPrg.t -> Ident.idref option -> Lv6MainArgs.t -> uni output_string stdout (oracle_file_name ^" generated.\n"); flush stdout +let info msg = + let t = Sys.time() in + Verbose.exe ~level:1 (fun () -> Printf.eprintf "%4.4f: %s%!" t msg; flush stderr) + let main () = ( (* Compile.init_appli () ; *) @@ -138,28 +183,28 @@ let main () = ( Verbose.exe ~level:3 (fun () -> Gc.set { (Gc.get ()) with Gc.verbose = 0x01 } ); - if opt.run_unit_test then ( - UnifyType.unit_test (); - exit 0 - ); - if (opt.infiles = []) then ( - Lv6MainArgs.usage stderr opt; - exit 1 - ); + if opt.run_unit_test then (UnifyType.unit_test (); exit 0); + if (opt.infiles = []) then (Lv6MainArgs.usage stderr opt; exit 1); let new_dft_pack = Filename.basename (Filename.chop_extension (List.hd opt.infiles)) in Ident.set_dft_pack_name new_dft_pack; let main_node = - if opt.main_node = "" then None else - Some (Ident.idref_of_string opt.main_node) + if opt.main_node = "" then None else Some (Ident.idref_of_string opt.main_node) in if opt.outfile <> "" then opt.oc <- open_out opt.outfile; (try ( let nsl = Compile.get_source_list opt opt.infiles in let lic_prg = Compile.doit opt nsl main_node in + if opt.print_interface then ( + gen_rif_interface lic_prg main_node opt; + info "bye!"; + exit 0 + ); if opt.Lv6MainArgs.gen_autotest then gen_autotest_files lic_prg main_node opt - else if opt.exec then + else if opt.gen_ocaml then + GenOcamlGlue.f Sys.argv opt + else if (opt.exec || opt.gen_c) then (match main_node with | None -> ( let name = find_a_node opt in @@ -167,8 +212,15 @@ let main () = ( if LicPrg.node_exists lic_prg nk then ( print_string ("WARNING: No main node is specified. I'll try with " ^ name ^"\n"); flush stdout; - let msk, zesoc = Lic2soc.f lic_prg nk in - SocExec.f opt zesoc msk + info "Start compiling to soc...\n"; + let msk,zesoc = Lic2soc.f lic_prg nk in + info "Soc Compilation done.\n"; + if opt.gen_c then ( + info "Start generating C code...\n"; + Soc2c.f opt zesoc); + if opt.exec then ( + info "Start interpreting soc...\n"; + SocExec.f opt zesoc msk) ) else ( print_string ("Error: no node is specified, cannot exec.\n"); flush stdout; @@ -176,32 +228,33 @@ let main () = ( ) ) | Some main_node -> + info "Start compiling to soc...\n"; let msk, zesoc = Lic2soc.f lic_prg (Lic.node_key_of_idref main_node) in - SocExec.f opt zesoc msk - ) else ( + + info "Soc Compilation done. \n"; + if opt.gen_c then ( + info "Start generating C code...\n"; + Soc2c.f opt zesoc); + + if opt.exec then ( + info "Start interpreting soc...\n"; + SocExec.f opt zesoc msk) + ) else ( LicPrg.to_file opt lic_prg main_node ); Verbose.exe ~level:3 (fun () -> Gc.print_stat stdout); ) with - Sys_error(s) -> - prerr_string (s^"\n"); - my_exit opt 1 - | Global_error s -> - print_global_error s ; - my_exit opt 1 - | Parse_error -> - print_compile_error (Lxm.last_made ()) "syntax error"; - my_exit opt 1 + Sys_error(s) -> prerr_string (s^"\n"); my_exit opt 1 + | Global_error s -> print_global_error s; my_exit opt 1 + | Parse_error -> print_compile_error (Lxm.last_made ()) "syntax error"; my_exit opt 1 | Unknown_var(lxm,id) -> print_compile_error lxm ("unknown variable (" ^ (Ident.to_string id) ^")"); my_exit opt 1 | Unknown_constant(lxm,str) -> print_compile_error lxm ("unknown constant (" ^ str ^")"); my_exit opt 1 - | Compile_error(lxm,msg) -> - print_compile_error lxm msg; - my_exit opt 1 + | Compile_error(lxm,msg) -> print_compile_error lxm msg; my_exit opt 1 | L2lCheckLoops.Error(lxm,msg,lic_prg) -> (* Sometime it helps to see the current state of the faulty program *) LicPrg.to_file opt lic_prg main_node; @@ -216,16 +269,17 @@ let main () = ( (if List.length opt.infiles > 1 then "s " else " ") ^ (String.concat ", " opt.infiles) ^ "\n"^ "\n*** You migth want to sent a bug report to "^Lv6version.maintainer ^"\n") ; + flush stderr; my_exit opt 2 ); - (* | Compile_node_error(nkey,lxm,msg) -> ( *) - (* print_compile_node_error nkey lxm msg ; *) - (* exit 1 *) - (* ) *) - (* | Global_node_error(nkey,msg) -> ( *) - (* print_global_node_error nkey msg ; *) - (* exit 1 *) - (* ) *) + (* | Compile_node_error(nkey,lxm,msg) -> ( *) + (* print_compile_node_error nkey lxm msg ; *) + (* exit 1 *) + (* ) *) + (* | Global_node_error(nkey,msg) -> ( *) + (* print_global_node_error nkey msg ; *) + (* exit 1 *) + (* ) *) close_out opt.oc diff --git a/src/genlex.ml b/src/myGenlex.ml similarity index 100% rename from src/genlex.ml rename to src/myGenlex.ml diff --git a/src/genlex.mli b/src/myGenlex.mli similarity index 100% rename from src/genlex.mli rename to src/myGenlex.mli diff --git a/src/rif_base.ml b/src/rif_base.ml deleted file mode 100644 index bfedc9dae539ad1723d3c5020ee5ca4b5a26c500..0000000000000000000000000000000000000000 --- a/src/rif_base.ml +++ /dev/null @@ -1,338 +0,0 @@ -(*----------------------------------------------------------------------- -** Copyright (C) - Verimag. -** This file may only be copied under the terms of the GNU Library General -** Public License -**----------------------------------------------------------------------- -** -** File: rif.ml -** Author: jahier@imag.fr -*) - - -open List - -let lexer = Genlex.make_lexer ["q"; "nil"; "ERROR"; "#"; "x"; "load_luc"; "#@"; "@#"] - -(* xxx Which pragmas should be defined ? *) - -let rif_pragmas = ["inputs"] -(* let rif_pragmas = ["outs";"outputs";"program";"inputs";"step";"reset"] *) - - -type stream = Genlex.token Stream.t - -let rec (parse_string_list : stream -> string list -> string list) = - fun stream sl -> - try ( - match (Stream.next stream) with - (Genlex.String(_, str)) -> parse_string_list stream (str::sl) - | _ -> failwith ("### rif parse error. A \"string\" (wrapped with double" ^ - "quotes) was expected. \n") - ) - with Stream.Failure -> - sl - -open Data - -(*------------------------------------------------------------------------*) - -let debug = false -let read_line label ic oc = - let str = input_line ic in - let _ = if debug then (print_string (label^ "read_line:"^str^"\n"); flush stdout) in - let str = Str.global_replace (Str.regexp "\013") "" str in - (match oc with - | Some oc -> output_string oc str; flush oc - | None -> ()); - str - -let get_stream ic oc = - try lexer (Stream.of_string (read_line "" ic oc)) - with e -> - print_string ("*** Error when parsing RIF: " ^ (Printexc.to_string e) ^ "\n"); - flush stdout; - exit 2 - - -let (rm_blank : string -> string) = - fun s -> - let buff = ref "" in - for i = 0 to String.length s - 1 do - match s.[i] with - | ' ' | '\t' | '\n' | '\"' -> () - | c -> buff:=!buff^(String.make 1 c) - done; - !buff - -let (to_pair : string -> string * string) = - fun s -> - match Str.split (Str.regexp ":") s with - | [n;t] -> rm_blank n, rm_blank t - | _ -> failwith ("Rif internal error: Cannot split '"^s^"'. It should contain exactly one ':'") - - -let _ = assert (to_pair "T:bool" = ("T","bool")) - - -let rec (read_until_pragma_end : in_channel -> out_channel option -> string -> string) = - fun ic oc str -> - let line = read_line "" ic oc in - try - let i = Str.search_forward (Str.regexp "#@") line 0 in - ( - String.sub line 0 i) ^ str - with Not_found -> - (* let _ = print_string ("read_until_pragma_end done: '"^str^"'\n"); flush stdout in *) - -(* let _ = print_string ("read_until_pragma_end adding: "^line^"\n"); flush stdout in *) - read_until_pragma_end ic oc (str^" "^line) - -(* exported *) -let rec (read_interface : string -> in_channel -> out_channel option -> - (string * string) list * (string * string) list) = - fun label ic oc -> -(* let _ = print_string ("read_interface\n"); flush stdout in *) - let rec loop ins outs = - if ins <> [] && outs <> [] then ins, outs else - let line = read_line label ic oc in - try - if Str.string_match (Str.regexp "#inputs") line 0 then - let str = String.sub line 7 (String.length line - 7) in - let l = Str.split (Str.regexp " ") str in - let l = List.filter (fun str -> str <> "") l in - loop (List.map to_pair l) outs - - else if Str.string_match (Str.regexp "@#inputs") line 0 then - let str = String.sub line 8 (String.length line - 8) in - let str = read_until_pragma_end ic oc str in - let l = Str.split (Str.regexp " ") str in - let l = List.filter (fun str -> str <> "") l in - loop (List.map to_pair l) outs - - else if Str.string_match (Str.regexp "#outputs") line 0 then - let str = String.sub line 8 (String.length line - 8) in - let l = Str.split (Str.regexp " ") str in - let l = List.filter (fun str -> str <> "") l in - loop ins (List.map to_pair l) - - else if Str.string_match (Str.regexp "@#outputs") line 0 then - let str = String.sub line 9 (String.length line - 9) in - let str = read_until_pragma_end ic oc str in - let l = Str.split (Str.regexp " ") str in - let l = List.filter (fun str -> str <> "") l in - loop ins (List.map to_pair l) - else - loop ins outs - with _ -> - print_string "*** Error when parsing socket content: I was expecting #inputs/#outputs\n"; - print_string ("*** And I've read '" ^ line ^"'\n"); - flush stdout; - loop ins outs - in - loop [] [] - -exception Bye - -(* exported *) -let rec (read : ?pragma:(string list) -> in_channel -> out_channel option -> vntl -> subst list) = - fun ?(pragma = []) ic oc vntl -> - (** Reads input values on ic. It should follow the rif format. *) - let tbl = [] in - if vntl = [] then tbl else - let stream = get_stream ic oc in - parse_rif_stream ic oc vntl stream tbl pragma - -and (parse_rif_stream : in_channel -> out_channel option -> vntl -> stream -> - subst list -> string list -> subst list) = - fun ic oc vntl stream tbl pragma -> - if vntl = [] then tbl else - let tok_list = Stream.npeek 2 stream in - match tok_list with - | [Genlex.Kwd (_,"#"); Genlex.Ident (_,id)] -> - if List.mem id pragma then ( - Stream.junk stream ; - Stream.junk stream ; - parse_rif_stream ic oc vntl stream tbl pragma - ) else ( - (* We skip everything that occurs after a [#], until the next eol. *) - Stream.junk stream ; - parse_rif_stream ic oc - vntl (get_stream ic oc) tbl pragma - ) - | (Genlex.Kwd (_,"#"))::(Genlex.Kwd (_,"ERROR"))::_ -> - print_string "#ERROR value read. bye!\n"; raise Bye - | (Genlex.Kwd (_,"#"))::_ -> - Stream.junk stream ; - parse_rif_stream ic oc vntl (get_stream ic oc) - tbl pragma - | (Genlex.Kwd (_,"nil"))::_ -> print_string "# nil value read. bye!\n"; raise Bye - | (Genlex.Kwd (_,"ERROR"))::_ -> print_string "#ERROR value read. bye!\n"; raise Bye - | (Genlex.Kwd (_,"q"))::_ -> print_string "# bye!\n"; raise Bye - | (Genlex.Kwd (_,"#@"))::_ -> - (* Beginning of multi-line comment. Note that here, - unlike the rif format, we ignore multi line pragmas; - namely, we handle them as a multi-line comment. *) - ( - Stream.junk stream ; - ignore_toks_until_end_of_pragmas ic oc vntl stream tbl pragma - ) - | (Genlex.Float (_,f))::_ -> - ( - Stream.junk stream ; - (* Hashtbl.add tbl (Var.name (hd vntl)) (N(F(f))) ; *) - let v = - match snd (hd vntl) with - | "bool" -> B(f<>0.0) - | "real" -> F(f) - | "int" -> - let i = int_of_float f in - print_string "\n*** Warning: type error, "; - print_string ((string_of_float f) - ^ " is an real, but an int is expected. I convert it to '"^ - (string_of_int i)^"'\n"); - I(i) - | e -> - print_string ("\n*** Error: unknown type: "^ e ^ "\n"); - assert false - in - let tbl = tbl@ [fst (hd vntl), v] in - parse_rif_stream ic oc (tl vntl) stream tbl pragma - ) - | (Genlex.Int (_,i))::_ -> ( - Stream.junk stream ; - let v = - match snd (hd vntl) with - | "bool" -> B(i<>0) - | "int" -> I(i) - | "real" -> - let f = float_of_int i in - print_string "\n*** Warning: type error, "; - print_string ((string_of_int i) - ^ " is an int, but a real is expected. I convert it to '"^ - (string_of_float f)^"'\n"); - F(f) - | e -> - print_string ("\n*** Error: unknown type: "^ e ^ "\n"); - assert false - in - let tbl = tbl @[fst (hd vntl), v] in - parse_rif_stream ic oc (tl vntl) stream tbl pragma - ) - | (Genlex.Ident (_,b))::_ -> ( - Stream.junk stream ; - let v = if mem b ["f"; "F";"false"] then B(false) - else if mem b ["t"; "T";"true"] then B(true) - else failwith ("### rif parse error: `" ^ b ^ "' read, where a bool was expected.\n") - in - let tbl = tbl @ [fst (hd vntl), v] in - parse_rif_stream ic oc (tl vntl) stream tbl pragma - ) - | [] -> - (* Eol is is reached; proceed with the next one *) - parse_rif_stream ic oc vntl (get_stream ic oc) - tbl pragma - | _ -> failwith ("### rif parse error: not in RIF format.\n") - -and (ignore_toks_until_end_of_pragmas : - in_channel -> out_channel option-> vntl -> stream -> subst list -> string list -> subst list) = - fun ic oc vntl stream tbl pragma -> - (* ignore all tokens until "@#" is reached *) - let tok_opt = Stream.peek stream in - match tok_opt with - | Some(Genlex.Kwd (_,"@#")) -> - ( - Stream.junk stream ; - parse_rif_stream ic oc vntl stream tbl pragma - ) - | Some(_) -> - ( - Stream.junk stream ; - ignore_toks_until_end_of_pragmas ic oc vntl stream tbl pragma - ) - | None -> - (* Eol is is reached; proceed with the next one *) - (ignore_toks_until_end_of_pragmas ic oc vntl - (get_stream ic oc) tbl pragma) - - - - -(*------------------------------------------------------------------------*) -(* exported *) -let (write : out_channel -> string -> unit) = - fun oc str -> - output_string oc str - -let (flush : out_channel -> unit) = - fun oc -> - flush oc - -(*------------------------------------------------------------------------*) -(* exported *) -let (write_interface : out_channel -> vntl -> vntl -> vntl option -> vntl list option -> unit) = - fun oc in_vars out_vars loc_vars_opt oracle_vars_opt -> - let str = - (List.fold_left - (fun acc (vn,vt) -> - acc ^ "\"" ^ vn ^ "\":" ^ vt ^ " ") - "#inputs " - in_vars) ^ - - "\n#outputs " ^ - - (List.fold_left - (fun acc (vn,vt) -> - acc ^ "\"" ^ vn ^ "\":" ^ vt ^ " ") - "" - out_vars) ^ - - (match loc_vars_opt with - | None -> "\n" - | Some loc_vars -> - ((List.fold_left - (fun acc (vn,vt) -> - acc^"\"" ^ vn ^ "\":" ^ vt ^ " ") - "\n#locals " - loc_vars - ) ^ "\n") - ) - ^ - (match oracle_vars_opt with - | None -> "" - | Some vars_l -> - (List.fold_left - (fun acc vars -> - ((List.fold_left - (fun acc (vn,vt) -> - acc^"\"" ^ vn ^ "\":" ^ vt ^ " ") - "#oracle_outputs " - vars - ) ^ "\n" ^ acc) - ) - "" - vars_l - ) - ) - in - write oc str - -(*------------------------------------------------------------------------*) -(* exported *) -let (write_outputs : out_channel -> (float -> string) -> vntl -> subst list -> unit) = - fun oc s2f vntl sl -> - let str = - List.fold_left - (fun acc (vn,vt) -> - acc^ (try Data.val_to_string s2f (List.assoc vn sl) - with - | Not_found -> - print_string ("*** " ^ vn ^ " not found in "); - print_string (String.concat "," (List.map (fun (n,_) -> n) sl)); - flush stdout; - assert false - ) ^ " " - ) - "" - vntl - in - output_string oc str diff --git a/src/rif_base.mli b/src/rif_base.mli deleted file mode 100644 index 4afc24606c30c34e0d6d466f51e3f585540292cc..0000000000000000000000000000000000000000 --- a/src/rif_base.mli +++ /dev/null @@ -1,42 +0,0 @@ -(*----------------------------------------------------------------------- -** Copyright (C) - Verimag. -** This file may only be copied under the terms of the GNU Library General -** Public License -**----------------------------------------------------------------------- -** -** File: rif.ml -** Author: jahier@imag.fr -*) - - -(** RIF (Reactive Input Format) utilities *) - - - -(** [read_interface label ic oc_opt] reads the IO names and types on ic. The string -read on ic should looks like : - #inputs v1:t1 v2:t2 ... - #outputs x1:tx1 ... - #step - - [label] is a string used in debug mode to hint who is calling. - - *) -val read_interface : string -> in_channel -> out_channel option -> (string * string) list * (string * string) list - -exception Bye - -(** Reads the input values. raises Bye if a line equal to "q" is read. *) -val read : ?pragma:(string list) -> in_channel -> out_channel option -> Data.vntl -> Data.subst list - -val write : out_channel -> string -> unit - -(** [write_outputs oc float_to_string outputs ] writes the Lucky outputs *) -val write_outputs : out_channel -> (float -> string) -> Data.vntl -> Data.subst list -> unit - -(** [write_interface oc in_vars_ out_vars loc_vars oracle_vars] writes the input - and output var names and types *) -val write_interface : out_channel -> Data.vntl -> Data.vntl -> Data.vntl option -> - Data.vntl list option -> unit - -val flush : out_channel -> unit diff --git a/src/soc.ml b/src/soc.ml index 58f2e00736486fa2713684d630727410433c2ee0..80307730c60396f74bfb39072a361a70d63b9702 100644 --- a/src/soc.ml +++ b/src/soc.ml @@ -1,4 +1,4 @@ -(* Time-stamp: <modified the 04/06/2013 (at 17:43) by Erwan Jahier> *) +(* Time-stamp: <modified the 23/04/2014 (at 10:17) by Erwan Jahier> *) (** Synchronous Object Component *) diff --git a/src/soc2c.ml b/src/soc2c.ml new file mode 100644 index 0000000000000000000000000000000000000000..9b66b382fb62c3a8d6818c5ed634ee29d5abeb07 --- /dev/null +++ b/src/soc2c.ml @@ -0,0 +1,217 @@ +(* Time-stamp: <modified the 12/05/2014 (at 15:44) by Erwan Jahier> *) + + +(* let put (os: out_channel) (fmt:('a, unit, string, unit) format4) : 'a = *) +(* Printf.kprintf (fun t -> output_string os t) fmt *) + +open Printf + +let rec (type_to_string : Data.t -> string) = + fun v -> + let str = + match v with + | Bool -> "_boolean" + | Int -> "_integer" + | Real-> "_real" + | Extern s -> s ^ "(*extern*)" + | Enum (s, sl) -> s + | Struct (sid,_) -> sid ^ "(*struct*)" + | Array (ty, sz) -> Printf.sprintf "%s^%d" (type_to_string ty) sz + | Alpha nb -> assert false + in + str + +let colcol = Str.regexp "::" +let id2s id = + match Str.split colcol id with + | [s] -> s + | [m;s] -> if Lv6MainArgs.global_opt.Lv6MainArgs.no_prefix then s else m^"_"^s + | _ -> assert false + + +(* Soc printer *) +type 'a soc_pp = { + hfmt: ('a, unit, string, unit) format4 -> 'a; + cfmt: ('a, unit, string, unit) format4 -> 'a; + cput : string -> unit; + hput : string -> unit; + soc: Soc.t +} + +let rec (type_to_short_string : Data.t -> string) = + fun v -> + let str = + match v with + | Data.Bool -> "b" + | Data.Int -> "i" + | Data.Real-> "r" + | Data.Extern s -> s + | Data.Enum (s, sl) -> s + | Data.Struct (sid,_) -> sid + | Data.Array (ty, sz) -> Printf.sprintf "%sp%d" (type_to_string ty) sz + | Data.Alpha nb -> + (* On génère des "types" à la Caml : 'a, 'b, 'c, etc. *) + let a_value = Char.code('a') in + let z_value = Char.code('z') in + let str = + if (nb >= 0 && nb <= (z_value - a_value)) then + ("'" ^ (Char.escaped (Char.chr(a_value + nb)))) + else + ("'a" ^ (string_of_int nb)) + in + str + in + str + +let (ctx_name : Soc.key -> string) = + fun (name,tl,_) -> + let l = List.map type_to_short_string tl in + Printf.sprintf "%s_%s_ctx" (id2s name) (String.concat "" l) + +let (step_name : Soc.key -> string -> string) = + fun (soc_name,tl,_) sm -> + let l = List.map type_to_short_string tl in + sprintf "%s_%s_%s" (id2s soc_name) (String.concat "" l) sm + + +let (string_of_soc_key : Soc.key -> string) = + fun (name,_,_) -> (id2s name) + +let string_of_flow_decl (id, t) = Printf.sprintf " %s %s;\n" (type_to_string t) id + +let (mem_interface : Soc.t -> string -> bool) = + fun soc id -> + let ins,outs = soc.profile in + List.mem_assoc id ins || List.mem_assoc id outs + +let rec (string_of_var_expr: Soc.t -> Soc.var_expr -> string) = + fun soc -> function + | Const(id, _) | Var (id,_) -> if not (mem_interface soc id) then id else + sprintf "ctx->%s" id + | Field(f, id,_) -> sprintf "%s.%s" (string_of_var_expr soc f) id + | Index(f, index,_) -> sprintf "%s[%i]" (string_of_var_expr soc f) index + | Slice(f,fi,la,st,wi,vt) -> sprintf "%s[%i..%i step %i]; // XXX fixme!\n" + (string_of_var_expr soc f) fi la st + +let (gao2c : 'a soc_pp -> Soc.gao -> unit) = + fun sp gao -> + let string_of_var_expr_list vel = + let vel = List.map (string_of_var_expr sp.soc) vel in + String.concat "," vel + in + match gao with + | Case(id, id_gao_l) -> assert false + | Call(vel_out, Assign, vel_in) -> + let vel_in_str = string_of_var_expr_list vel_in in + let vel_out_str = string_of_var_expr_list vel_out in + let str = sprintf " %s = %s;\n" vel_out_str vel_in_str in + sp.cput str + + | Call(vel_out, Method((inst_name,sk),sname), vel_in) -> +(* let vel_in_str = string_of_var_expr_list vel_in in *) +(* let vel_out_str = string_of_var_expr_list vel_out in *) + let vel_str = string_of_var_expr_list (vel_in@vel_out) in + let str = sprintf " %s(ctx->%s,%s); //method call\n" (* XXX fixme ! *) + (step_name sk sname) (id2s inst_name) vel_str in + sp.cput str + + + | Call(vel_out, Procedure sk, vel_in) -> + let vel_in_str = string_of_var_expr_list vel_in in + let vel_out_str = string_of_var_expr_list vel_out in + let sk = (string_of_soc_key sk) in + let str = sprintf " %s = %s(%s); //procedure call\n" vel_out_str sk vel_in_str in + sp.cput str + + + +let (step2c : 'a soc_pp -> Soc.step_method -> unit) = + fun sp sm -> + let cname = ctx_name sp.soc.key in + let sm_str = SocUtils.string_of_method sp.soc sm in + let sname = step_name sp.soc.key sm.name in +(* sp.put (sprintf "/* %s */\n" sm_str); *) + sp.cfmt "void %s(%s* ctx){\n" sname cname; + + + (match sm.impl with + | Predef -> sp.cput " //xxx predef_finish_me!" + | Gaol(vl, gaol) -> + List.iter (fun v -> sp.cput (string_of_flow_decl v)) vl ; + sp.cput "\n"; + List.iter (gao2c sp) gaol +(* of var list * gao list (* local vars + body *) *) + | Iterator(it,it_soc,s) -> assert false + | Boolred(i,j,k) -> assert false + | Condact(k,el) -> assert false + ); + sp.cput (sprintf "\n} // End of %s\n\n" sname) + + +let (soc2c: out_channel -> out_channel -> Soc.t -> unit) = + fun hfile cfile soc -> + let hfmt fmt = Printf.kprintf (fun t -> output_string hfile t) fmt in + let cfmt fmt = Printf.kprintf (fun t -> output_string cfile t) fmt in + let hput str = output_string hfile str in + let cput str = output_string cfile str in + let put str = cput str; hput str in + let fmt f str = cfmt f str; hfmt f str in + let string_of_instance (id,sk) = + let (sk_id,tl,init_opt) = sk in + let init = match init_opt with + | Soc.Nomore -> "" + | Soc.Slic(_,_,_) -> assert false (* fixme *) + | Soc.MemInit(ve) -> Printf.sprintf " = %s" (string_of_var_expr soc ve) + in + Printf.sprintf " %s %s%s;\n" (ctx_name sk) (id2s id) init + in + + let name, _,_ = soc.key in + let name = id2s name in + let il,ol = soc.profile in + let sp = { hfmt = hfmt; cfmt=cfmt; hput = hput; cput = cput; soc = soc } in + let ctx_name = ctx_name soc.key in + + fmt "/* %s */\ntypedef struct {\n /*INPUTS*/\n" ctx_name; + List.iter (fun v -> put (string_of_flow_decl v)) il ; + + put " /*OUTPUTS*/\n"; + List.iter (fun v -> put (string_of_flow_decl v)) ol ; + + (match soc.have_mem with + | None -> () + | Some t -> + put " /*Memory cell*/\n"; + fmt " %s mem_pre;\n" (Data.type_to_string t) ; + ); + + if soc.instances <> [] then put " /*INSTANCES*/\n"; + List.iter (fun inst -> put (string_of_instance inst)) soc.instances; + fmt "} %s;\n\n" ctx_name; + + cfmt "// Step function(s) for %s\n" ctx_name; + List.iter (step2c sp) soc.step; + () + + + +(* The entry point for lus2lic --to-c *) +let (f : Lv6MainArgs.t -> Soc.tbl -> unit) = + fun args soc -> + let socs = Soc.SocMap.bindings soc in + let socs = snd (List.split socs) in +(* XXX que fait-on pour les soc predef ? *) +(* let _, socs = List.partition is_predef socs in *) + let hfile = "hfile.h" in + let cfile = "cfile.c" in + let occ = open_out cfile in + let och = open_out hfile in + + Lv6util.dump_entete stdout ; + List.iter (soc2c och occ) socs; + flush occ; close_out occ; + flush och; close_out och; + Printf.printf "%s and %s have been generated.\n" hfile cfile; + + (* XXX remove me: *) List.iter (soc2c stdout stdout) socs + diff --git a/src/soc2c.mli b/src/soc2c.mli new file mode 100644 index 0000000000000000000000000000000000000000..621fc9a88cab2779d1bb49bc63d8bfcbadec2e5a --- /dev/null +++ b/src/soc2c.mli @@ -0,0 +1,4 @@ +(* Time-stamp: <modified the 17/04/2014 (at 15:20) by Erwan Jahier> *) + +(* The entry point for lus2lic -toC *) +val f : Lv6MainArgs.t -> Soc.tbl -> unit diff --git a/src/soc2cPredef.ml b/src/soc2cPredef.ml new file mode 100644 index 0000000000000000000000000000000000000000..a33e3079f973ff2140065a97ea203b747534df5c --- /dev/null +++ b/src/soc2cPredef.ml @@ -0,0 +1,377 @@ +(* Time-stamp: <modified the 23/04/2014 (at 09:06) by Erwan Jahier> *) + + + +(* +let (lustre_plus : ctx -> ctx) = + fun ctx -> + let l = [get_val "x" ctx; get_val "y" ctx] in + let (vn,vv) = + match l with + | [I x1; I x2] -> "z"::ctx.cpath,I(x1+x2) + | [F i1; F i2] -> "z"::ctx.cpath,F(i1+.i2) + | [U; _] | [_;U] -> "z"::ctx.cpath,U + | [v1;v2] -> type_error v1 v2; "z"::ctx.cpath,U + | _ -> assert false + in + { ctx with s = sadd ctx.s vn vv } + +let lustre_times ctx = + let (vn,vv) = + match ([get_val "x" ctx; get_val "y" ctx]) with + | [I x1; I x2] -> "z"::ctx.cpath,I(x1 * x2) + | [F x1; F x2] -> "z"::ctx.cpath,F(x1 *. x2) + | [U; _] | [_;U] -> "z"::ctx.cpath,U + | [v1;v2] -> type_error v1 v2; "z"::ctx.cpath,U + | _ -> assert false + in + { ctx with s = sadd ctx.s vn vv } + + +let lustre_div ctx = + let (vn,vv) = + match ([get_val "x" ctx; get_val "y" ctx]) with + | [I x1; I x2] -> "z"::ctx.cpath,I(x1 / x2) + | [F x1; F x2] -> "z"::ctx.cpath,F(x1 /. x2) + | [U; _] | [_;U] -> "z"::ctx.cpath,U + | [v1;v2] -> type_error v1 v2;"z"::ctx.cpath,U + | _ -> assert false + in + { ctx with s = sadd ctx.s vn vv } + +let lustre_slash ctx = + let (vn,vv) = + match ([get_val "x" ctx; get_val "y" ctx]) with + | [I x1; I x2] -> "z"::ctx.cpath,I(x1 / x2) + | [F x1; F x2] -> "z"::ctx.cpath,F(x1 /. x2) + | [U; _] | [_;U] -> "z"::ctx.cpath,U + | [v1;v2] -> type_error v1 v2;"z"::ctx.cpath,U + | _ -> assert false + in + { ctx with s = sadd ctx.s vn vv } + + +let lustre_minus ctx = + let (vn,vv) = + match ([get_val "x" ctx; get_val "y" ctx]) with + | [I x1; I x2] -> "z"::ctx.cpath,I(x1 - x2) + | [F x1; F x2] -> "z"::ctx.cpath,F(x1 -. x2) + | [U; _] | [_;U] -> "z"::ctx.cpath,U + | [v1;v2] -> type_error v1 v2; "z"::ctx.cpath,U + | [v1;v2] -> type_error v1 v2; "z"::ctx.cpath,U + | _ -> assert false + in + { ctx with s = sadd ctx.s vn vv } + +let lustre_mod ctx = + let (vn,vv) = + match ([get_val "x" ctx; get_val "y" ctx]) with + | [I x1; I x2] -> "z"::ctx.cpath,I(x1 mod x2) + | [U; _] | [_;U] -> "z"::ctx.cpath,U + | [v1;v2] -> type_error v1 v2; "z"::ctx.cpath,U + | _ -> assert false + in + { ctx with s = sadd ctx.s vn vv } + + +let lustre_eq ctx = + let (vn,vv) = + match ([get_val "x" ctx; get_val "y" ctx]) with + | [U; _] | [_;U] -> "z"::ctx.cpath,U + | [x1; x2] -> "z"::ctx.cpath,B(x1 = x2) + | [v1;v2] -> type_error v1 v2; "z"::ctx.cpath,U + | _ -> assert false + in + { ctx with s = sadd ctx.s vn vv } + +let lustre_uminus ctx = + let (vn,vv) = + match ([get_val "x" ctx]) with + | [I x1] -> "z"::ctx.cpath,I(- x1) + | [F x1] -> "z"::ctx.cpath,F(-. x1) + | [U; _] | [_;U] -> "z"::ctx.cpath,U + | [v1] -> type_error1 v1 "numeric";"z"::ctx.cpath,U + | _ -> assert false + in + { ctx with s = sadd ctx.s vn vv } + +let lustre_real2int ctx = + let (vn,vv) = + match ([get_val "x" ctx]) with + | [F x1] -> "z"::ctx.cpath,I(int_of_float x1) + | [U] -> "z"::ctx.cpath,U + | [v1] -> type_error1 v1 "real";"z"::ctx.cpath,U + | _ -> assert false + in + { ctx with s = sadd ctx.s vn vv } + + +let lustre_int2real ctx = + let (vn,vv) = + match ([get_val "x" ctx]) with + | [I x1] -> "z"::ctx.cpath,F(float_of_int x1) + | [U] -> "z"::ctx.cpath,U + | [v1] -> type_error1 v1 "int";"z"::ctx.cpath,U + | _ -> assert false + in + { ctx with s = sadd ctx.s vn vv } + + +let lustre_not ctx = + let (vn,vv) = + match ([get_val "x" ctx]) with + | [B x1] -> "z"::ctx.cpath,B(not x1) + | [U] -> "z"::ctx.cpath,U + | [v1] -> type_error1 v1 "bool";"z"::ctx.cpath,U + | _ -> assert false + in + { ctx with s = sadd ctx.s vn vv } + + +let lustre_lt ctx = + let (vn,vv) = + match ([get_val "x" ctx; get_val "y" ctx]) with + | [U; _] | [_;U] -> "z"::ctx.cpath,U + | [x1; x2] -> "z"::ctx.cpath,B(x1 < x2) + | [v1;v2] -> type_error v1 v2; "z"::ctx.cpath,U + | _ -> assert false + in + { ctx with s = sadd ctx.s vn vv } + +let lustre_gt ctx = + let (vn,vv) = + match ([get_val "x" ctx; get_val "y" ctx]) with + | [U; _] | [_;U] -> "z"::ctx.cpath,U + | [x1; x2] -> "z"::ctx.cpath,B(x1 > x2) + | [v1;v2] -> type_error v1 v2; "z"::ctx.cpath,U + | _ -> assert false + in + { ctx with s = sadd ctx.s vn vv } + +let lustre_lte ctx = + let (vn,vv) = + match ([get_val "x" ctx; get_val "y" ctx]) with + | [U; _] | [_;U] -> "z"::ctx.cpath,U + | [x1; x2] -> "z"::ctx.cpath,B(x1 <= x2) + | [v1;v2] -> type_error v1 v2; "z"::ctx.cpath,U + | _ -> assert false + in + { ctx with s = sadd ctx.s vn vv } + +let lustre_gte ctx = + let (vn,vv) = + match ([get_val "x" ctx; get_val "y" ctx]) with + | [U; _] | [_;U] -> "z"::ctx.cpath,U + | [x1; x2] -> "z"::ctx.cpath,B(x1 >= x2) + | [v1;v2] -> type_error v1 v2; "z"::ctx.cpath,U + | _ -> assert false + in + { ctx with s = sadd ctx.s vn vv } + +let lustre_and ctx = + let (vn,vv) = + match ([get_val "x" ctx; get_val "y" ctx]) with + | [B x1; B x2] -> "z"::ctx.cpath,B(x1 && x2) + | [U; _] | [_;U] -> "z"::ctx.cpath,U + | [v1;v2] -> type_error2 v1 v2 "bool";"z"::ctx.cpath,U + | _ -> assert false + in + { ctx with s = sadd ctx.s vn vv } + +let lustre_xor ctx = + let (vn,vv) = + match ([get_val "x" ctx; get_val "y" ctx]) with + | [B x1; B x2] -> "z"::ctx.cpath,B(x1 <> x2) + | [U; _] | [_;U] -> "z"::ctx.cpath,U + | [v1;v2] -> type_error2 v1 v2 "bool";"z"::ctx.cpath,U + | _ -> assert false + in + { ctx with s = sadd ctx.s vn vv } + + +let lustre_neq ctx = + let (vn,vv) = + match ([get_val "x" ctx; get_val "y" ctx]) with + | [U; _] | [_;U] -> "z"::ctx.cpath,U + | [x1; x2] -> "z"::ctx.cpath,B(x1 <> x2) + | _ -> assert false + in + { ctx with s = sadd ctx.s vn vv } + + +let lustre_or ctx = + let (vn,vv) = + match ([get_val "x" ctx; get_val "y" ctx]) with + | [B x1; B x2] -> "z"::ctx.cpath,B(x1 || x2) + | [U; _] | [_;U] -> "z"::ctx.cpath,U + | [v1;v2] -> type_error2 v1 v2 "bool";"z"::ctx.cpath,U + | _ -> assert false + in + { ctx with s = sadd ctx.s vn vv } + + +let lustre_impl ctx = + let (vn,vv) = + match ([get_val "x" ctx; get_val "y" ctx]) with + | [B x1; B x2] -> "z"::ctx.cpath,B(not x1 or x2) + | [U; _] | [_;U] -> "z"::ctx.cpath,U + | [v1;v2] -> type_error2 v1 v2 "bool";"z"::ctx.cpath,U + | _ -> assert false + in + { ctx with s = sadd ctx.s vn vv } + +let lustre_if ctx = + let (vn,vv) = + match ([get_val "c" ctx; get_val "xt" ctx; get_val "xe" ctx]) with + | [B c; v1; v2] -> "z"::ctx.cpath, if c then v1 else v2 + | [U;_; _] | [_;U;U] -> "z"::ctx.cpath,U + | [v1;v2] -> type_error v1 v2; "z"::ctx.cpath,U + | _ -> assert false + in + { ctx with s = sadd ctx.s vn vv } + + +let make_names str start stop = + let res = ref [] in + for k=stop downto start do + res:= (str^(string_of_int k)) :: !res; + done; + !res + + +let lustre_array tl ctx = + let t,size = match List.hd (List.rev tl) with + | Data.Array(t,i) -> t,i + | _ -> assert false + in + let inames = make_names "x" 1 size in + let l = List.map (fun name -> get_val name ctx) inames in + let a = Array.of_list l in + { ctx with s = sadd ctx.s ("z"::ctx.cpath) (A a) } + +let lustre_merge tl ctx = + let (vn,vv) = match get_val "clk" ctx with + | B(true) -> "z"::ctx.cpath, get_val "x0" ctx + | B(false) -> "z"::ctx.cpath, get_val "x1" ctx + | E(_,i) -> "z"::ctx.cpath, get_val ("x"^(string_of_int i)) ctx + | _ -> assert false + in + { ctx with s = sadd ctx.s vn vv } + +let lustre_slice tl si_opt ctx = + let _t,size = match List.hd (List.rev tl) with + | Data.Array(t,i) -> t,i + | _ -> assert false + in + let (vn,vv) = + match ([get_val "x" ctx], si_opt) with + | [A a],Slic(b,e,step) -> + let a_res = Array.make size a.(0) in + let j=ref 0 in + for i = b to e do + if (i-b) mod step = 0 then ( + a_res.(!j) <- a.(i); + incr j + ); + done; + "z"::ctx.cpath, A (a_res) + | [U],_ -> "z"::ctx.cpath, U + | _ -> assert false + in + { ctx with s = sadd ctx.s vn vv } + +let lustre_concat ctx = + let (vn,vv) = + match ([get_val "x" ctx; get_val "y" ctx]) with + | [A a1; A a2] -> "z"::ctx.cpath, A (Array.append a1 a2) + | [U;_] | [_;U] -> "z"::ctx.cpath, U + | _ -> assert false + in + { ctx with s = sadd ctx.s vn vv } + +let lustre_current ctx = + let (vn,vv) = + match ([get_val "x" ctx]) with + | [v] -> "z"::ctx.cpath, v + | _ -> assert false + in + { ctx with s = sadd ctx.s vn vv } + +let lustre_arrow ctx = + let (vn,vv) = + match ([get_val "x" ctx; get_val "y" ctx; + get_val "$first_step" { ctx with cpath=List.tl ctx.cpath}]) + with + | [v1;v2; fs] -> "z"::ctx.cpath, if fs=B false then v2 else v1 + | _ -> assert false + in + { ctx with s = sadd ctx.s vn vv } + +let lustre_hat tl ctx = + let i = match tl with + | [_;Data.Array(_,i)] -> i + | _ -> assert false + in + let (vn,vv) = + match ([get_val "x" ctx]) with + | [U] -> "z"::ctx.cpath,U + | [v] -> "z"::ctx.cpath,A(Array.make i v) + | _ -> assert false + in + { ctx with s = sadd ctx.s vn vv } + +(* exported *) +let (get: Soc.key -> (ctx -> ctx)) = + fun (n,tl,si_opt) -> + match n with + | "Lustre::rplus" + | "Lustre::iplus" + | "Lustre::plus" -> lustre_plus + | "Lustre::itimes" + | "Lustre::rtimes" + | "Lustre::times"-> lustre_times + | "Lustre::idiv" + | "Lustre::rdiv" + | "Lustre::div" -> lustre_div + | "Lustre::slash" | "Lustre::islash" | "Lustre::rslash" -> lustre_slash + | "Lustre::iminus" + | "Lustre::rminus" + | "Lustre::minus"-> lustre_minus + + | "Lustre::mod" -> lustre_mod + | "Lustre::iuminus" + | "Lustre::ruminus" + | "Lustre::uminus" -> lustre_uminus + | "Lustre::not" -> lustre_not + | "Lustre::real2int" -> lustre_real2int + | "Lustre::int2real" -> lustre_int2real + + | "Lustre::lt"| "Lustre::rlt" | "Lustre::ilt" -> lustre_lt + | "Lustre::gt"| "Lustre::rgt" | "Lustre::igt" -> lustre_gt + | "Lustre::lte"| "Lustre::rlte" | "Lustre::ilte" -> lustre_lte + | "Lustre::gte"| "Lustre::rgte"| "Lustre::igte" -> lustre_gte + + | "Lustre::xor" -> lustre_xor + | "Lustre::and" -> lustre_and + | "Lustre::eq" -> lustre_eq + | "Lustre::neq" -> lustre_neq + | "Lustre::or" -> lustre_or + + | "Lustre::impl" -> lustre_impl + + | "Lustre::if"| "Lustre::rif"| "Lustre::iif" -> lustre_if + + | "Lustre::hat" -> lustre_hat tl + | "Lustre::array" -> lustre_array tl + | "Lustre::concat" -> lustre_concat + + | "Lustre::arrow" -> lustre_arrow + | "Lustre::current" -> lustre_current + | "Lustre::merge" -> lustre_merge tl + + | "Lustre::array_slice" -> lustre_slice tl si_opt + + | "Lustre::nor" -> assert false (* ougth to be translated into boolred *) + | "Lustre::diese" -> assert false (* ditto *) + | _ -> raise Not_found +*) diff --git a/src/socExec.ml b/src/socExec.ml index a23257ab1dcf93313f676898a1281227408dea0f..ff9989a9b8c6b39e9050089715b80c2f0c65d160 100644 --- a/src/socExec.ml +++ b/src/socExec.ml @@ -1,4 +1,4 @@ -(* Time-stamp: <modified the 06/06/2013 (at 10:29) by Erwan Jahier> *) +(* Time-stamp: <modified the 27/02/2014 (at 17:32) by Erwan Jahier> *) open Soc open Data @@ -248,6 +248,7 @@ let (unexpand_profile : sl -> Soc.var list -> sl) = (* Returns the (accumulated) result and the unused subst (which should be empty at the top-level call) *) match sl_todo, vl with + | [],_::_ -> sl_done,[] | _,[] -> sl_done, sl_todo | s::sl, (_, (Bool| Int | Real))::vl -> aux (s::sl_done) sl vl | (id,v)::sl, (_,Enum(n,el))::vl -> @@ -275,7 +276,6 @@ let (unexpand_profile : sl -> Soc.var list -> sl) = | _, (vn,Extern id)::_ -> assert false (* finish me! *) | _, (vn,Alpha _ )::_ -> assert false (* should not occur *) - | [],_::_ -> assert false (* should not occur *) and (aux_field : sl * (ident * Data.v) list -> ident * Data.t -> sl * (ident * Data.v) list ) = fun (sl_todo, fl) (fn, t) -> @@ -294,25 +294,28 @@ let (add_data_subst : var list -> Data.subst list -> SocExecValue.substs -> SocE let s = unexpand_profile s vntl_i in List.fold_left (fun acc (id,v) -> sadd acc [id] v) ctx_s s -let (read_soc_input : var list -> Data.vntl -> out_channel -> substs -> substs) = - fun vntl_i exp_vntl_i_str oc ctx_s -> - let s:Data.subst list = Rif_base.read stdin (Some oc) exp_vntl_i_str in +let (read_soc_input : Lv6MainArgs.t -> var list -> Data.vntl -> out_channel -> substs -> substs) = + fun opt vntl_i exp_vntl_i_str oc ctx_s -> + let s:Data.subst list = + RifIO.read ~debug:(Verbose.level()>0) stdin (if opt.rif then None else Some oc) exp_vntl_i_str + in add_data_subst vntl_i s ctx_s let rec (loop_step : Lv6MainArgs.t -> Soc.tbl -> Soc.var list -> Data.vntl -> Data.vntl -> Soc.t -> SocExecValue.ctx -> int -> out_channel -> unit) = fun opt soc_tbl vntl_i exp_vntl_i_str exp_vntl_o_str soc ctx step_nb oc -> - Rif_base.write oc ("\n#step " ^ (string_of_int step_nb)^"\n"); - let ctx = { ctx with s = read_soc_input vntl_i exp_vntl_i_str oc ctx.s } in + if not opt.rif then RifIO.write oc ("\n#step " ^ (string_of_int step_nb)^"\n"); + let ctx = { ctx with s = read_soc_input opt vntl_i exp_vntl_i_str oc ctx.s } in let step = match soc.step with [step] -> step | _ -> assert false in let ctx = soc_step step soc_tbl soc ctx in let ctx = { ctx with s = sadd ctx.s ("$first_step"::ctx.cpath) (B false)} in let s = SocExecValue.filter_top_subst ctx.s in let s = List.flatten(List.map expand_subst s) in let f2s = SocUtils.my_string_of_float_precision opt.Lv6MainArgs.precision in - Rif_base.write oc " #outs "; - Rif_base.write_outputs oc f2s exp_vntl_o_str s; - Rif_base.flush oc; + if not opt.rif then RifIO.write oc " #outs "; + RifIO.write_outputs oc f2s exp_vntl_o_str s; + RifIO.write oc "\n"; + RifIO.flush oc; Verbose.exe ~flag:dbg (fun () -> dump_substs ctx.s; flush stdout); loop_step opt soc_tbl vntl_i exp_vntl_i_str exp_vntl_o_str soc ctx (step_nb+1) oc @@ -320,11 +323,8 @@ let (f : Lv6MainArgs.t -> Soc.tbl -> Soc.key -> unit) = fun opt soc_tbl sk -> let soc = try SocMap.find sk soc_tbl with Not_found -> assert false in let ctx = SocExecValue.create_ctx soc_tbl soc in - let vntl_of_profile = List.map (fun (x,t) -> x,SocUtils.string_of_type_ref t) in let exp_vntl_i = expand_profile true (fst soc.profile) in let exp_vntl_o = expand_profile true (snd soc.profile) in - let exp_vntl_i_str = vntl_of_profile exp_vntl_i in - let exp_vntl_o_str = vntl_of_profile exp_vntl_o in let oc = if opt.Lv6MainArgs.outfile = "" then stdout else let rif_file = @@ -334,10 +334,10 @@ let (f : Lv6MainArgs.t -> Soc.tbl -> Soc.key -> unit) = open_out rif_file in Lv6util.dump_entete oc; - Rif_base.write_interface oc exp_vntl_i_str exp_vntl_o_str None None; - Rif_base.flush oc; - try loop_step opt soc_tbl (fst soc.profile) exp_vntl_i_str exp_vntl_o_str soc ctx 1 oc - with Rif_base.Bye -> + RifIO.write_interface oc exp_vntl_i exp_vntl_o None None; + RifIO.flush oc; + try loop_step opt soc_tbl (fst soc.profile) exp_vntl_i exp_vntl_o soc ctx 1 oc + with RifIO.Bye -> close_out oc (**************************************************************************************) @@ -362,8 +362,8 @@ let rec (do_step_dbg : Soc.tbl -> Soc.t -> Event.ctx -> SocExecValue.ctx -> Event.ctx_name = soc_name; Event.ctx_depth = ectx.Event.ctx_depth+1; Event.ctx_data = datal; - Event.ctx_inputs = List.map fst (fst soc.profile); - Event.ctx_outputs = List.map fst (snd soc.profile); + Event.ctx_inputs = fst soc.profile; + Event.ctx_outputs = snd soc.profile; } in let cont2 ctx = @@ -376,42 +376,36 @@ let rec (do_step_dbg : Soc.tbl -> Soc.t -> Event.ctx -> SocExecValue.ctx -> Event.line = Lxm.line lxm,Lxm.line lxm; Event.char = Lxm.cstart lxm, Lxm.cend lxm; (* Event.stack = if tl=[] then None else Some (to_src_info tl); *) - Event.stack = None; (* XXX stub *) + Event.stack = None; }]) in - let enb = Event.incr_nb (); Event.get_nb () in + let enb = Event.incr_nb () in { Event.step = ectx.Event.ctx_step; Event.nb = enb; Event.depth = ectx.Event.ctx_depth; - Event.kind = - Event.Node { - Event.lang = "lustre"; - Event.name = soc_name; - Event.port = Event.Exit ("",Expr.True,lazy_si); - Event.inputs = ectx.Event.ctx_inputs; - Event.outputs = ectx.Event.ctx_outputs; - }; + Event.kind = Event.Exit; + Event.lang = "lustre"; + Event.name = soc_name; + Event.inputs = ectx.Event.ctx_inputs; + Event.outputs = ectx.Event.ctx_outputs; + Event.sinfo = None; Event.data = ectx.Event.ctx_data; - Event.other = ""; Event.next = (fun () -> Event.event_nb := enb; cont ctx); Event.terminate = ectx.Event.ctx_terminate; } in { Event.step = ectx.Event.ctx_step; - Event.nb = (Event.incr_nb (); Event.get_nb ()); + Event.nb = (Event.incr_nb ()); Event.depth = ectx.Event.ctx_depth; - Event.kind = - Event.Node { - Event.lang = "lustre"; - Event.name = soc_name; - Event.port = Event.Call; - Event.inputs = ectx.Event.ctx_inputs; - Event.outputs = ectx.Event.ctx_outputs; - }; + Event.kind = Event.Call; + Event.lang = "lustre"; + Event.name = soc_name; + Event.inputs = ectx.Event.ctx_inputs; + Event.outputs = ectx.Event.ctx_outputs; + Event.sinfo = None; Event.data = ectx.Event.ctx_data; - Event.other = ""; Event.next = (fun () -> let step = match soc.step with [step] -> step | _ -> assert false in let ctx = soc_step step soc_tbl soc ctx in diff --git a/src/socExecEvalPredef.ml b/src/socExecEvalPredef.ml index 5b5652eafecc12305f6028725e1efa81dfdf44eb..b38cb5dbd0b09e4e0a65492c7c693cc661163609 100644 --- a/src/socExecEvalPredef.ml +++ b/src/socExecEvalPredef.ml @@ -1,4 +1,4 @@ -(* Time-stamp: <modified the 05/06/2013 (at 11:07) by Erwan Jahier> *) +(* Time-stamp: <modified the 26/03/2014 (at 09:45) by Erwan Jahier> *) open SocExecValue open Data @@ -6,6 +6,21 @@ open Soc (* A boring but simple module... *) +let type_error v1 v2 = + Printf.eprintf "Runtime error: '%s' and '%s' have different types.\n" + (Data.val_to_string string_of_float v1) (Data.val_to_string string_of_float v2); + flush stderr + +let type_error1 v1 str = + Printf.eprintf "Runtime error: '%s' is not a '%s'\n" + (Data.val_to_string string_of_float v1) str; + flush stderr + +let type_error2 v1 v2 str = + Printf.eprintf "Runtime error: '%s' and/or '%s' are/is not a %s\n" + (Data.val_to_string string_of_float v1) (Data.val_to_string string_of_float v2) str; + flush stderr + let (lustre_plus : ctx -> ctx) = fun ctx -> let l = [get_val "x" ctx; get_val "y" ctx] in @@ -14,7 +29,8 @@ let (lustre_plus : ctx -> ctx) = | [I x1; I x2] -> "z"::ctx.cpath,I(x1+x2) | [F i1; F i2] -> "z"::ctx.cpath,F(i1+.i2) | [U; _] | [_;U] -> "z"::ctx.cpath,U - | e -> assert false + | [v1;v2] -> type_error v1 v2; "z"::ctx.cpath,U + | _ -> assert false in { ctx with s = sadd ctx.s vn vv } @@ -24,6 +40,7 @@ let lustre_times ctx = | [I x1; I x2] -> "z"::ctx.cpath,I(x1 * x2) | [F x1; F x2] -> "z"::ctx.cpath,F(x1 *. x2) | [U; _] | [_;U] -> "z"::ctx.cpath,U + | [v1;v2] -> type_error v1 v2; "z"::ctx.cpath,U | _ -> assert false in { ctx with s = sadd ctx.s vn vv } @@ -35,6 +52,7 @@ let lustre_div ctx = | [I x1; I x2] -> "z"::ctx.cpath,I(x1 / x2) | [F x1; F x2] -> "z"::ctx.cpath,F(x1 /. x2) | [U; _] | [_;U] -> "z"::ctx.cpath,U + | [v1;v2] -> type_error v1 v2;"z"::ctx.cpath,U | _ -> assert false in { ctx with s = sadd ctx.s vn vv } @@ -45,6 +63,7 @@ let lustre_slash ctx = | [I x1; I x2] -> "z"::ctx.cpath,I(x1 / x2) | [F x1; F x2] -> "z"::ctx.cpath,F(x1 /. x2) | [U; _] | [_;U] -> "z"::ctx.cpath,U + | [v1;v2] -> type_error v1 v2;"z"::ctx.cpath,U | _ -> assert false in { ctx with s = sadd ctx.s vn vv } @@ -56,6 +75,8 @@ let lustre_minus ctx = | [I x1; I x2] -> "z"::ctx.cpath,I(x1 - x2) | [F x1; F x2] -> "z"::ctx.cpath,F(x1 -. x2) | [U; _] | [_;U] -> "z"::ctx.cpath,U + | [v1;v2] -> type_error v1 v2; "z"::ctx.cpath,U + | [v1;v2] -> type_error v1 v2; "z"::ctx.cpath,U | _ -> assert false in { ctx with s = sadd ctx.s vn vv } @@ -65,6 +86,7 @@ let lustre_mod ctx = match ([get_val "x" ctx; get_val "y" ctx]) with | [I x1; I x2] -> "z"::ctx.cpath,I(x1 mod x2) | [U; _] | [_;U] -> "z"::ctx.cpath,U + | [v1;v2] -> type_error v1 v2; "z"::ctx.cpath,U | _ -> assert false in { ctx with s = sadd ctx.s vn vv } @@ -75,6 +97,7 @@ let lustre_eq ctx = match ([get_val "x" ctx; get_val "y" ctx]) with | [U; _] | [_;U] -> "z"::ctx.cpath,U | [x1; x2] -> "z"::ctx.cpath,B(x1 = x2) + | [v1;v2] -> type_error v1 v2; "z"::ctx.cpath,U | _ -> assert false in { ctx with s = sadd ctx.s vn vv } @@ -85,6 +108,7 @@ let lustre_uminus ctx = | [I x1] -> "z"::ctx.cpath,I(- x1) | [F x1] -> "z"::ctx.cpath,F(-. x1) | [U; _] | [_;U] -> "z"::ctx.cpath,U + | [v1] -> type_error1 v1 "numeric";"z"::ctx.cpath,U | _ -> assert false in { ctx with s = sadd ctx.s vn vv } @@ -94,6 +118,7 @@ let lustre_real2int ctx = match ([get_val "x" ctx]) with | [F x1] -> "z"::ctx.cpath,I(int_of_float x1) | [U] -> "z"::ctx.cpath,U + | [v1] -> type_error1 v1 "real";"z"::ctx.cpath,U | _ -> assert false in { ctx with s = sadd ctx.s vn vv } @@ -104,6 +129,7 @@ let lustre_int2real ctx = match ([get_val "x" ctx]) with | [I x1] -> "z"::ctx.cpath,F(float_of_int x1) | [U] -> "z"::ctx.cpath,U + | [v1] -> type_error1 v1 "int";"z"::ctx.cpath,U | _ -> assert false in { ctx with s = sadd ctx.s vn vv } @@ -114,6 +140,7 @@ let lustre_not ctx = match ([get_val "x" ctx]) with | [B x1] -> "z"::ctx.cpath,B(not x1) | [U] -> "z"::ctx.cpath,U + | [v1] -> type_error1 v1 "bool";"z"::ctx.cpath,U | _ -> assert false in { ctx with s = sadd ctx.s vn vv } @@ -124,6 +151,7 @@ let lustre_lt ctx = match ([get_val "x" ctx; get_val "y" ctx]) with | [U; _] | [_;U] -> "z"::ctx.cpath,U | [x1; x2] -> "z"::ctx.cpath,B(x1 < x2) + | [v1;v2] -> type_error v1 v2; "z"::ctx.cpath,U | _ -> assert false in { ctx with s = sadd ctx.s vn vv } @@ -133,6 +161,7 @@ let lustre_gt ctx = match ([get_val "x" ctx; get_val "y" ctx]) with | [U; _] | [_;U] -> "z"::ctx.cpath,U | [x1; x2] -> "z"::ctx.cpath,B(x1 > x2) + | [v1;v2] -> type_error v1 v2; "z"::ctx.cpath,U | _ -> assert false in { ctx with s = sadd ctx.s vn vv } @@ -142,6 +171,7 @@ let lustre_lte ctx = match ([get_val "x" ctx; get_val "y" ctx]) with | [U; _] | [_;U] -> "z"::ctx.cpath,U | [x1; x2] -> "z"::ctx.cpath,B(x1 <= x2) + | [v1;v2] -> type_error v1 v2; "z"::ctx.cpath,U | _ -> assert false in { ctx with s = sadd ctx.s vn vv } @@ -151,6 +181,7 @@ let lustre_gte ctx = match ([get_val "x" ctx; get_val "y" ctx]) with | [U; _] | [_;U] -> "z"::ctx.cpath,U | [x1; x2] -> "z"::ctx.cpath,B(x1 >= x2) + | [v1;v2] -> type_error v1 v2; "z"::ctx.cpath,U | _ -> assert false in { ctx with s = sadd ctx.s vn vv } @@ -160,6 +191,7 @@ let lustre_and ctx = match ([get_val "x" ctx; get_val "y" ctx]) with | [B x1; B x2] -> "z"::ctx.cpath,B(x1 && x2) | [U; _] | [_;U] -> "z"::ctx.cpath,U + | [v1;v2] -> type_error2 v1 v2 "bool";"z"::ctx.cpath,U | _ -> assert false in { ctx with s = sadd ctx.s vn vv } @@ -169,6 +201,7 @@ let lustre_xor ctx = match ([get_val "x" ctx; get_val "y" ctx]) with | [B x1; B x2] -> "z"::ctx.cpath,B(x1 <> x2) | [U; _] | [_;U] -> "z"::ctx.cpath,U + | [v1;v2] -> type_error2 v1 v2 "bool";"z"::ctx.cpath,U | _ -> assert false in { ctx with s = sadd ctx.s vn vv } @@ -189,6 +222,7 @@ let lustre_or ctx = match ([get_val "x" ctx; get_val "y" ctx]) with | [B x1; B x2] -> "z"::ctx.cpath,B(x1 || x2) | [U; _] | [_;U] -> "z"::ctx.cpath,U + | [v1;v2] -> type_error2 v1 v2 "bool";"z"::ctx.cpath,U | _ -> assert false in { ctx with s = sadd ctx.s vn vv } @@ -199,6 +233,7 @@ let lustre_impl ctx = match ([get_val "x" ctx; get_val "y" ctx]) with | [B x1; B x2] -> "z"::ctx.cpath,B(not x1 or x2) | [U; _] | [_;U] -> "z"::ctx.cpath,U + | [v1;v2] -> type_error2 v1 v2 "bool";"z"::ctx.cpath,U | _ -> assert false in { ctx with s = sadd ctx.s vn vv } @@ -208,6 +243,7 @@ let lustre_if ctx = match ([get_val "c" ctx; get_val "xt" ctx; get_val "xe" ctx]) with | [B c; v1; v2] -> "z"::ctx.cpath, if c then v1 else v2 | [U;_; _] | [_;U;U] -> "z"::ctx.cpath,U + | [v1;v2] -> type_error v1 v2; "z"::ctx.cpath,U | _ -> assert false in { ctx with s = sadd ctx.s vn vv } diff --git a/src/socPredef.ml b/src/socPredef.ml index 03f988b7ac198b19457e2809f8bf0c50300cbdbe..279d28806753a142ea91f03f4d5db6a31b33aa28 100644 --- a/src/socPredef.ml +++ b/src/socPredef.ml @@ -1,4 +1,4 @@ -(* Time-stamp: <modified the 04/06/2013 (at 17:48) by Erwan Jahier> *) +(* Time-stamp: <modified the 16/05/2014 (at 14:50) by Erwan Jahier> *) (** Synchronous Object Code for Predefined operators. *) @@ -194,14 +194,18 @@ let of_soc_key : Soc.key -> Soc.t = lxm = Lxm.dummy "predef soc"; idx_ins = []; idx_outs = [0]; - impl = Gaol([pre_mem],[Call([Var(vout)], Assign, [Var(pre_mem)])]); +(* impl = Predef; *) + impl = Gaol([pre_mem],[Call([Var(vout)], Assign, [Var(pre_mem)])]); +(* impl = Gaol([pre_mem],[Call([Var(vout)], Assign, [Var(pre_mem)])]); *) }; { name = "set"; lxm = Lxm.dummy "predef soc"; idx_ins = [0]; idx_outs = []; - impl = Gaol([pre_mem],[Call([Var(pre_mem)], Assign, [Var(v1)])]); +(* impl = Predef; *) + impl = Gaol([pre_mem],[Call([Var(pre_mem)], Assign, [Var(v1)])]); +(* impl = Gaol([pre_mem],[Call([Var(pre_mem)], Assign, [Var(v1)])]); *) }; ]; precedences = ["set", ["get"]]; diff --git a/src/socUtils.ml b/src/socUtils.ml index e68c457b0c7daf208c9f597ef74467fcf9ee4bf0..f7a0f3ecf04f825cd94e85da93253686f1adf23c 100644 --- a/src/socUtils.ml +++ b/src/socUtils.ml @@ -1,4 +1,4 @@ -(** Time-stamp: <modified the 04/06/2013 (at 17:47) by Erwan Jahier> *) +(** Time-stamp: <modified the 16/05/2014 (at 11:21) by Erwan Jahier> *) open Soc @@ -90,7 +90,8 @@ let string_of_soc_key: (Soc.key -> string) = fun v -> call_fun_ff (string_of_soc_key_ff v) (* Opération *) -let string_of_operation_ff: (atomic_operation -> Format.formatter -> unit) = fun v ff -> match v with +let string_of_operation_ff: (atomic_operation -> Format.formatter -> unit) = + fun v ff -> match v with | Assign -> () (* On suppose qu'il est déjà affiché dans string_of_gao *) | Method((n, sk),sname) -> fprintf ff "%s.%s" n sname | Procedure(proc) -> fprintf ff "%s" (string_of_soc_key proc) diff --git a/src/socUtils.mli b/src/socUtils.mli index 7b81391c564773df3817a1210dbcb89431a07f59..71ab4b1ac84b680cb5544f6c8b4003e653e60e27 100644 --- a/src/socUtils.mli +++ b/src/socUtils.mli @@ -1,4 +1,4 @@ -(** Time-stamp: <modified the 26/04/2013 (at 09:43) by Erwan Jahier> *) +(** Time-stamp: <modified the 04/04/2014 (at 14:45) by Erwan Jahier> *) (** Donne toute les méthodes d'un composant. *) @@ -20,18 +20,18 @@ val string_of_profile : Soc.var list * Soc.var list -> string val string_interface_of_soc : Soc.t -> string val string_of_soc : Soc.t -> string -val string_of_type_ref_ff : Data.t -> Format.formatter -> unit val string_of_soc_key_ff : Soc.key -> Format.formatter -> unit -val string_of_var_ff : Soc.var -> Format.formatter -> unit +val string_of_type_ref_ff : Data.t -> Format.formatter -> unit +val string_of_var_ff : Soc.var -> Format.formatter -> unit val string_of_operation_ff : Soc.atomic_operation -> Format.formatter -> unit val string_of_filter_ff : Soc.var_expr -> Format.formatter -> unit -val string_of_gao_ff : Soc.gao -> Format.formatter -> unit -val string_of_method_ff : Soc.t -> Soc.step_method -> Format.formatter -> unit -val string_interface_of_method_ff : Soc.t -> Soc.step_method -> Format.formatter -> unit +val string_of_gao_ff : Soc.gao -> Format.formatter -> unit +val string_of_method_ff : Soc.t -> Soc.step_method -> Format.formatter -> unit +val string_interface_of_method_ff : Soc.t -> Soc.step_method -> Format.formatter -> unit val string_of_precedence_ff : string * string list -> Format.formatter -> unit val string_of_profile_ff : Soc.var list * Soc.var list -> Format.formatter -> unit -val string_interface_of_soc_ff : Soc.t -> Format.formatter -> unit -val string_of_soc_ff : Soc.t -> Format.formatter -> unit +val string_interface_of_soc_ff : Soc.t -> Format.formatter -> unit +val string_of_soc_ff : Soc.t -> Format.formatter -> unit (** [output header_flag pack_name] dumps the soc list into a diff --git a/src/toposort.ml b/src/toposort.ml deleted file mode 100644 index d1a72796edbdc504943425af05010d6538c8b6e3..0000000000000000000000000000000000000000 --- a/src/toposort.ml +++ /dev/null @@ -1,39 +0,0 @@ -(** See documentation in the .mli *) - - -exception DependencyCycle of string * string list - -(** Do the actual topological sort. - - This function takes several parameters : - @param acc this is the accumulator, which contains already sorted values - @param in_process contains values which are currently being processed (to detect cyclic dependencies) - @param to_sort this is the list to sort - @param dep_fun gives dependencies for a specific value from to_sort list *) -let rec topological_sort_acc: - ('a -> string) -> 'a list -> 'a list -> 'a list -> ('a -> 'a list) -> 'a list = - fun a2str acc in_process to_sort dep_fun -> match to_sort with - | [] -> acc - | x::tl -> - if List.mem x in_process then - (* If this element is already marked as being processed, it must be - a cyclic dependency *) - raise (DependencyCycle(a2str x, List.map a2str in_process)) - - else if List.mem x acc then - (* If the element is already in the accumulator, it means - we've already sorted it. *) - topological_sort_acc a2str acc in_process tl dep_fun - - else - (* Else, we compute the dependencies for this value *) - let dependencies = dep_fun x in - let dependencies_sorted = - topological_sort_acc a2str acc (x :: in_process) dependencies dep_fun - in - let acc = dependencies_sorted @ [x] in - topological_sort_acc a2str acc in_process tl dep_fun - - -let f: ('a -> string) -> 'a list -> ('a -> 'a list) -> 'a list = - fun a2str to_sort dep_fun -> topological_sort_acc a2str [] [] to_sort dep_fun diff --git a/src/toposort.mli b/src/toposort.mli deleted file mode 100644 index c517d2f03529b2928fd824f08b7b9fe750517e63..0000000000000000000000000000000000000000 --- a/src/toposort.mli +++ /dev/null @@ -1,14 +0,0 @@ -(** This module contains various tools used thorough the compiler. *) - -(** [topolocical_sort printer l dep_fun] does a topological sort on - the list [l], using the function [f] to find dependency in some - user-specific structure for each elements of [l], and recursively - for each dependencies found. - - The dependency structure is unknown to this function, since [dep_fun] is - the interface between each other. - - Throws a DependencyCycle exception a if cyclic dependency is found. *) -val f : ('a -> string) -> 'a list -> ('a -> 'a list) -> 'a list - -exception DependencyCycle of string * string list diff --git a/src/unifyClock.ml b/src/unifyClock.ml index 300fb5a0063d7b4ed2641f010bfa57d9c383ef86..291cc04fb6a9c130131e38b03dca7f380e554646 100644 --- a/src/unifyClock.ml +++ b/src/unifyClock.ml @@ -1,6 +1,22 @@ -(* Time-stamp: <modified the 04/06/2013 (at 15:00) by Erwan Jahier> *) +(* Time-stamp: <modified the 25/09/2013 (at 09:35) by Erwan Jahier> *) +(* XXX a revoir et faire comme expliqué ici : +http://www.cs.cornell.edu/courses/cs3110/2011sp/lectures/lec26-type-inference/type-inference.htm + C'est peu ou prou, ce que je fais, mais bon, j'ai plus trop confiance + dans ce module, et il mériterait un bon nettoyage. + + Un truc louche, c'est que je pretend utiliser de l'unification + pour vérifier les appels de noeud, en cherchant à unifier les + parametres et les arguments. Mais, me semble-t'il, cette + vérification est orientée (ca ne marche que si on fait "f par arg" + (ou le contraire). Et cette dissymétrie n'apparait ni dans le mli, + ni dans le terme unify. + + Par ailleur, subst devrait s'appeler env (en reminiscence des + environnements de types). + +*) open LicDump open Printf open Lxm @@ -215,11 +231,20 @@ let rec (apply_subst_val_exp : subst -> Lic.val_exp -> Lic.val_exp) = let is_clock_var = function | On(_) | BaseLic -> false | ClockVar _ -> true -(* exported *) +(* exported + +It's not really an unification algo, but rather a « compatibility checking ». +By compatibility, I mean that, +- c1 = c2 +- c1 or c2 are clock var +- if c1=On(id1,cc1) and c2=On(id2,cc2) then + cc1 and cc1[id1/id2] are compatible +*) + let (f : Lxm.t -> subst -> Lic.clock -> Lic.clock -> subst) = - fun lxm (s1,s2) ci1 ci2 -> - let ci1 = apply_subst (s1,s2) ci1 in - let ci2 = apply_subst (s1,s2) ci2 in + fun lxm (s1,s2) arg par -> + let arg = apply_subst (s1,s2) arg in + let par = apply_subst (s1,s2) par in let rec aux (s1,s2) (c1,c2) = match (c1,c2) with | On(v,clk), BaseLic @@ -236,44 +261,48 @@ let (f : Lxm.t -> subst -> Lic.clock -> Lic.clock -> subst) = | ClockVar i, ci | ci, ClockVar i -> s1, add_subst2 i ci s2 in - let s = aux (s1,s2) (ci1,ci2) in - let unifiable = - (* Two clocks are unifiable iff, once s have been applied, they are + let s = aux (s1,s2) (arg,par) in + let compatible = + (* Two clocks are compatible if, once s have been applied, they are equal, or one of them is a clock variable *) - let ci1 = apply_subst s ci1 - and ci2 = apply_subst s ci2 - in - ci1 = ci2 || is_clock_var ci1 || is_clock_var ci2 + let par = apply_subst s par + and arg = apply_subst s arg in + arg = par || is_clock_var arg || is_clock_var par in - if unifiable then ( + if compatible then ( if Verbose.level() > 2 then Verbose.print_string ( - "# clock checking: unifying '" ^ (ci2str ci1) ^ - "' and '" ^ (ci2str ci2) ^ "' -> "^ (subst_to_string s) ^"\n"); + "# clock checking: unifying '" ^ (ci2str arg) ^ + "' and '" ^ (ci2str par) ^ "' -> "^ (subst_to_string s) ^"\n"); flush stdout; s ) else let msg = - ("\n*** clock error: The two following clocks are not unifiable:\n***\t" ^ - (ci2str ci1) ^ "\n***\t" ^ - (ci2str ci2) ^ "\n") + ("\n*** clock error: The two following clocks are not compatible:\n***\t" ^ + (ci2str arg) ^ "\n***\t" ^ + (ci2str par) ^ "\n") in raise(Compile_error(lxm, msg)) + (* exported *) let (list : Lxm.t -> Lic.clock list -> subst -> Lic.clock * subst) = fun lxm cl s -> List.fold_left (fun (clk,s) clk2 -> - let s = f lxm s clk clk2 in - let clk = apply_subst s clk in (* necessary? *) - (clk,s) + let s = f lxm s clk clk2 in + let clk = apply_subst s clk in (* necessary? *) + (clk,s) ) (List.hd cl, s) (List.tl cl) + + + (******************************************************************************) (* exported *) +(* This function is in this module to avoid to export new_clock_var. A good idea? *) let rec (const_to_val_eff: Lxm.t -> bool -> subst -> const -> subst * val_exp) = fun lxm expand_const s const -> let mk_by_pos_op_arg by_pos_op_eff arg = @@ -284,6 +313,7 @@ let rec (const_to_val_eff: Lxm.t -> bool -> subst -> const -> subst * val_exp) = (s,clk::clks) in List.fold_left f (s,[]) cl + | c -> let s, clk = new_clock_var s in s, [clk] in { ve_core = CallByPosLic(flagit by_pos_op_eff lxm, arg) ; diff --git a/src/unifyClock.mli b/src/unifyClock.mli index 44794cac3a37990ff418c2c9161b542304bcb6b9..64b44f03e5c7a53f00e421b4cef7dbf6c099c3e6 100644 --- a/src/unifyClock.mli +++ b/src/unifyClock.mli @@ -1,11 +1,12 @@ -(* Time-stamp: <modified the 07/02/2013 (at 09:41) by Erwan Jahier> *) +(* Time-stamp: <modified the 25/09/2013 (at 08:35) by Erwan Jahier> *) (** Sub module of EvalClock that defines clock-checking utilities. We have Two kind of substitutions. - - subst1 is used to deal with the clock name binding, to relate node - parameters and node arguments. + - subst1 is used to deal with the clock name binding, to relate + node parameters and node arguments (to check clock equality up to + alpha conversion). - subst2 is used to deal with polymorphic clock variables. Indeed, constant clock is intrinsically polymorphic. Hence, when clocking @@ -18,7 +19,7 @@ mean I need to invent a fake var_info_eff, but it would make the whole more homogeous. - XXX Make it abstract? + XXX Make subst abstract? *) type subst1 = (Ident.t * Ident.t) list @@ -39,10 +40,32 @@ val add_link2 : int -> int -> subst2 -> subst2 val apply_subst_val_exp : subst -> Lic.val_exp -> Lic.val_exp -(** Raises a Compile_error is the 2 Lic.clock are not unifiable *) +(** [f lxm s clk_arg clk_par] Raises a Compile_error is the 2 + Lic.clock [clk_arg] and [clk_par] are not compatible. The + accumulated substitution s is augmented with eventual clock + variable instanciation. + + For instance, when clock checking the expression 'toto(a,b)', if + toto has the clock profile "alpha x alpha -> alpha", and the args + 'a' and 'b' are on clock 'clk', the expression 'toto(a,b)' should + be on clk too. We can check that later using the association + "alpha->clk" is added in the returned substitution. + + XXX UnifyClock.f is not a good name actually. CheckClock.f would + better reflect the reality + +*) val f : Lxm.t -> subst -> Lic.clock -> Lic.clock -> subst val list : Lxm.t -> Lic.clock list -> subst -> Lic.clock * subst val new_clock_var : subst -> subst * Lic.clock +(** Transform a const into a val_exp + [const_to_val_eff lxm flag s const] + - flag tells if abstract const should be expanded + - s is used to provide a clock to val_exp (actually, this is why + this function is in this module, but it's a weird reason). + + +*) val const_to_val_eff: Lxm.t -> bool -> subst -> Lic.const -> subst * Lic.val_exp diff --git a/test/Makefile b/test/Makefile index 4da70c5085ad5bb3076e865665d6ac7ae12799cc..15340e0bac12c9d60a31255045a9d442cd391797 100644 --- a/test/Makefile +++ b/test/Makefile @@ -1,26 +1,35 @@ -test: remote-runtest lus2lic.diff lus2lic.time +test: remote-runtest lus2lic.time lus2lic.diff +xxx: lus2lic.time lus2lic.diff -# to perform the test on the local machine rather than on triglav +TEST_MACHINE=grivola +# This fixes sporadic memory errors I get when running tests +OCAMLRUNPARAM=s=1M,i=32M,o=150 +# to perform the test on the local machine rather than on $(TEST_MACHINE) ltest: runtest lus2lic.diff lus2lic.time + testdir=$(shell pwd) # XXX remote test should be done using --target_board, but i've failed to make it working ... remote-runtest: -# runtest --all --tool lus2lic --target_board=$(testdir)/board_triglav.exp || true - ssh triglav "cd $(testdir) ; runtest --all --tool lus2lic" || true +# runtest --all --tool lus2lic --target_board=$(testdir)/board_$(TEST_MACHINE).exp || true + ssh $(TEST_MACHINE) "cd $(testdir) ; export OCAMLRUNPARAM=o=200 ; runtest --all --tool lus2lic" || true cd $(testdir) runtest: - ~/bin/runtest --all --tool lus2lic || true + runtest --all --tool lus2lic || true .PHONY:lus2lic.diff lus2lic.time lus2lic.diff: + cat lus2lic.log | grep -v "Process " | grep -v "Killing process " | \ + grep -v "simec_trap " | grep -v " Version " > lus2lic2.log + mv lus2lic2.log lus2lic.log diff -U 1 -I "Test Run By" -I "testcase \./lus2lic" -I "runtest completed at" \ - lus2lic.log.ref lus2lic.log > lus2lic.diff || \ - (ls -l lus2lic.diff; exit 1) + -I "This is Lurette Version " \ + lus2lic.log.ref lus2lic.log > lus2lic.diff || \ + (cat lus2lic.diff; echo "make utest if it is fine"; exit 1) time:lus2lic.time lus2lic.time: @@ -33,12 +42,13 @@ utest: cp lus2lic.log lus2lic.log.ref nonreg: - ssh triglav "cd $(testdir) ; runtest --all --tool lus2lic --ignore progression.exp" || true + ssh $(TEST_MACHINE) "cd $(testdir) ; runtest --all --tool lus2lic --ignore progression.exp" || true prog: - ssh triglav "cd $(testdir) ; runtest --all --tool lus2lic --ignore non-reg.exp" || true + ssh $(TEST_MACHINE) "cd $(testdir) ; runtest --all --tool lus2lic --ignore non-reg.exp" || true clean: - rm -f *.ec *.lus *.lut *.cov *.gp *.rif *.out + rm -f *.ec *.lus *.lut *.cov *.gp *.rif *.out *.cov + diff --git a/test/lus2lic b/test/lus2lic index 793bff7b83c2116dafc27304f525ec5125d5b51d..55b000a54966b2a666f7679c6eeb4201f0abed8a 120000 --- a/test/lus2lic +++ b/test/lus2lic @@ -1 +1 @@ -../objlinux/lus2lic \ No newline at end of file +../main.native \ No newline at end of file diff --git a/test/lus2lic.log.ref b/test/lus2lic.log.ref index ed6b3eae76ea73bd4413ba79bbfa7e35b30d1b7a..67366a051b010d0b2a4822d490fa93aac89e7e6e 100644 --- a/test/lus2lic.log.ref +++ b/test/lus2lic.log.ref @@ -1,4 +1,4 @@ -Test Run By jahier on Wed Apr 3 15:41:46 2013 +Test Run By jahier on Wed May 21 16:17:37 2014 Native configuration is i686-pc-linux-gnu === lus2lic tests === @@ -17,824 +17,3972 @@ spawn ./lus2lic -o /tmp/nc6.lic should_work/nc6.lus PASS: ./lus2lic {-o /tmp/nc6.lic should_work/nc6.lus} spawn ./lus2lic -ec -o /tmp/nc6.ec should_work/nc6.lus PASS: ./lus2lic {-ec -o /tmp/nc6.ec should_work/nc6.lus} -spawn ./ec2c -o /tmp/nc6.c /tmp/nc6.ec -PASS: ./ec2c {-o /tmp/nc6.c /tmp/nc6.ec} +spawn ./myec2c -o /tmp/nc6.c /tmp/nc6.ec +PASS: ./myec2c {-o /tmp/nc6.c /tmp/nc6.ec} +spawn ../utils/test_lus2lic_no_node should_work/nc6.lus ++ ./lus2lic should_work/nc6.lus -n nc6 --gen-autotest -np +_nc6_env.lut generated. +_nc6_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/nc6.lus ++ ./lus2lic should_work/nc6.lus -n nc6 -ec -o nc6.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:nc6.ec:nc6 -rp env:lutin:_nc6_env.lut -rp oracle:v6:_nc6_oracle.lus:nc6_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/nc6.lus spawn ./lus2lic -o /tmp/argos.lic should_work/argos.lus PASS: ./lus2lic {-o /tmp/argos.lic should_work/argos.lus} spawn ./lus2lic -ec -o /tmp/argos.ec should_work/argos.lus PASS: ./lus2lic {-ec -o /tmp/argos.ec should_work/argos.lus} -spawn ./ec2c -o /tmp/argos.c /tmp/argos.ec -PASS: ./ec2c {-o /tmp/argos.c /tmp/argos.ec} +spawn ./myec2c -o /tmp/argos.c /tmp/argos.ec +PASS: ./myec2c {-o /tmp/argos.c /tmp/argos.ec} +spawn ../utils/test_lus2lic_no_node should_work/argos.lus ++ ./lus2lic should_work/argos.lus -n argos --gen-autotest -np +_argos_env.lut generated. +_argos_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/argos.lus ++ ./lus2lic should_work/argos.lus -n argos -ec -o argos.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:argos.ec:argos -rp env:lutin:_argos_env.lut -rp oracle:v6:_argos_oracle.lus:argos_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/argos.lus spawn ./lus2lic -o /tmp/ck5.lic should_work/ck5.lus PASS: ./lus2lic {-o /tmp/ck5.lic should_work/ck5.lus} spawn ./lus2lic -ec -o /tmp/ck5.ec should_work/ck5.lus PASS: ./lus2lic {-ec -o /tmp/ck5.ec should_work/ck5.lus} -spawn ./ec2c -o /tmp/ck5.c /tmp/ck5.ec -PASS: ./ec2c {-o /tmp/ck5.c /tmp/ck5.ec} -spawn ./lus2lic -o /tmp/fby.lic should_work/fby.lus -PASS: ./lus2lic {-o /tmp/fby.lic should_work/fby.lus} -spawn ./lus2lic -ec -o /tmp/fby.ec should_work/fby.lus -PASS: ./lus2lic {-ec -o /tmp/fby.ec should_work/fby.lus} -spawn ./ec2c -o /tmp/fby.c /tmp/fby.ec -PASS: ./ec2c {-o /tmp/fby.c /tmp/fby.ec} -spawn ./lus2lic -o /tmp/assertion.lic should_work/assertion.lus -PASS: ./lus2lic {-o /tmp/assertion.lic should_work/assertion.lus} -spawn ./lus2lic -ec -o /tmp/assertion.ec should_work/assertion.lus -PASS: ./lus2lic {-ec -o /tmp/assertion.ec should_work/assertion.lus} -spawn ./ec2c -o /tmp/assertion.c /tmp/assertion.ec -PASS: ./ec2c {-o /tmp/assertion.c /tmp/assertion.ec} +spawn ./myec2c -o /tmp/ck5.c /tmp/ck5.ec +PASS: ./myec2c {-o /tmp/ck5.c /tmp/ck5.ec} +spawn ../utils/test_lus2lic_no_node should_work/ck5.lus ++ ./lus2lic should_work/ck5.lus -n ck5 --gen-autotest -np +_ck5_env.lut generated. +_ck5_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/ck5.lus ++ ./lus2lic should_work/ck5.lus -n ck5 -ec -o ck5.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:ck5.ec:ck5 -rp env:lutin:_ck5_env.lut -rp oracle:v6:_ck5_oracle.lus:ck5_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/ck5.lus spawn ./lus2lic -o /tmp/normal.lic should_work/normal.lus PASS: ./lus2lic {-o /tmp/normal.lic should_work/normal.lus} spawn ./lus2lic -ec -o /tmp/normal.ec should_work/normal.lus PASS: ./lus2lic {-ec -o /tmp/normal.ec should_work/normal.lus} -spawn ./ec2c -o /tmp/normal.c /tmp/normal.ec -PASS: ./ec2c {-o /tmp/normal.c /tmp/normal.ec} +spawn ./myec2c -o /tmp/normal.c /tmp/normal.ec +PASS: ./myec2c {-o /tmp/normal.c /tmp/normal.ec} +spawn ../utils/test_lus2lic_no_node should_work/normal.lus ++ ./lus2lic should_work/normal.lus -n normal --gen-autotest -np +_normal_env.lut generated. +_normal_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/normal.lus ++ ./lus2lic should_work/normal.lus -n normal -ec -o normal.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:normal.ec:normal -rp env:lutin:_normal_env.lut -rp oracle:v6:_normal_oracle.lus:normal_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/normal.lus spawn ./lus2lic -o /tmp/nodeparam.lic should_work/nodeparam.lus PASS: ./lus2lic {-o /tmp/nodeparam.lic should_work/nodeparam.lus} spawn ./lus2lic -ec -o /tmp/nodeparam.ec should_work/nodeparam.lus PASS: ./lus2lic {-ec -o /tmp/nodeparam.ec should_work/nodeparam.lus} -spawn ./ec2c -o /tmp/nodeparam.c /tmp/nodeparam.ec -PASS: ./ec2c {-o /tmp/nodeparam.c /tmp/nodeparam.ec} +spawn ./myec2c -o /tmp/nodeparam.c /tmp/nodeparam.ec +PASS: ./myec2c {-o /tmp/nodeparam.c /tmp/nodeparam.ec} +spawn ../utils/test_lus2lic_no_node should_work/nodeparam.lus ++ ./lus2lic should_work/nodeparam.lus -n nodeparam --gen-autotest -np +_nodeparam_env.lut generated. +_nodeparam_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/nodeparam.lus ++ ./lus2lic should_work/nodeparam.lus -n nodeparam -ec -o nodeparam.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:nodeparam.ec:nodeparam -rp env:lutin:_nodeparam_env.lut -rp oracle:v6:_nodeparam_oracle.lus:nodeparam_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/nodeparam.lus spawn ./lus2lic -o /tmp/enum0.lic should_work/enum0.lus PASS: ./lus2lic {-o /tmp/enum0.lic should_work/enum0.lus} spawn ./lus2lic -ec -o /tmp/enum0.ec should_work/enum0.lus PASS: ./lus2lic {-ec -o /tmp/enum0.ec should_work/enum0.lus} -spawn ./ec2c -o /tmp/enum0.c /tmp/enum0.ec -PASS: ./ec2c {-o /tmp/enum0.c /tmp/enum0.ec} +spawn ./myec2c -o /tmp/enum0.c /tmp/enum0.ec +PASS: ./myec2c {-o /tmp/enum0.c /tmp/enum0.ec} +spawn ../utils/test_lus2lic_no_node should_work/enum0.lus ++ ./lus2lic should_work/enum0.lus -n enum0 --gen-autotest -np +_enum0_env.lut generated. +_enum0_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/enum0.lus ++ ./lus2lic should_work/enum0.lus -n enum0 -ec -o enum0.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:enum0.ec:enum0 -rp env:lutin:_enum0_env.lut -rp oracle:v6:_enum0_oracle.lus:enum0_oracle -go -l 10 -ns2c --stop-on-oracle-error +Error in lurette: Failure("color1: unsupported type.\n") +Lurette launched a process that failed (exit 2). + +break signal catched + +lurettetop: bye! ++ echo error +error ++ exit 2 +FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/enum0.lus spawn ./lus2lic -o /tmp/ck6.lic should_work/ck6.lus PASS: ./lus2lic {-o /tmp/ck6.lic should_work/ck6.lus} spawn ./lus2lic -ec -o /tmp/ck6.ec should_work/ck6.lus PASS: ./lus2lic {-ec -o /tmp/ck6.ec should_work/ck6.lus} -spawn ./ec2c -o /tmp/ck6.c /tmp/ck6.ec -PASS: ./ec2c {-o /tmp/ck6.c /tmp/ck6.ec} +spawn ./myec2c -o /tmp/ck6.c /tmp/ck6.ec +PASS: ./myec2c {-o /tmp/ck6.c /tmp/ck6.ec} +spawn ../utils/test_lus2lic_no_node should_work/ck6.lus ++ ./lus2lic should_work/ck6.lus -n ck6 --gen-autotest -np +*** The soc of ck6::p is not defined. FINISH ME! +Extern node not yet supported, sorry + +*** oops: lus2lic internal error + File "src/lic2soc.ml", line 897, column 14 +*** when compiling lustre program should_work/ck6.lus + +*** You migth want to sent a bug report to jahier@imag.fr ++ echo Error +Error ++ exit 2 +FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/ck6.lus spawn ./lus2lic -o /tmp/Gyroscope2.lic should_work/Gyroscope2.lus PASS: ./lus2lic {-o /tmp/Gyroscope2.lic should_work/Gyroscope2.lus} spawn ./lus2lic -ec -o /tmp/Gyroscope2.ec should_work/Gyroscope2.lus PASS: ./lus2lic {-ec -o /tmp/Gyroscope2.ec should_work/Gyroscope2.lus} -spawn ./ec2c -o /tmp/Gyroscope2.c /tmp/Gyroscope2.ec -PASS: ./ec2c {-o /tmp/Gyroscope2.c /tmp/Gyroscope2.ec} +spawn ./myec2c -o /tmp/Gyroscope2.c /tmp/Gyroscope2.ec +PASS: ./myec2c {-o /tmp/Gyroscope2.c /tmp/Gyroscope2.ec} +spawn ../utils/test_lus2lic_no_node should_work/Gyroscope2.lus ++ ./lus2lic should_work/Gyroscope2.lus -n Gyroscope2 --gen-autotest -np +_Gyroscope2_env.lut generated. +_Gyroscope2_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/Gyroscope2.lus ++ ./lus2lic should_work/Gyroscope2.lus -n Gyroscope2 -ec -o Gyroscope2.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:Gyroscope2.ec:Gyroscope2 -rp env:lutin:_Gyroscope2_env.lut -rp oracle:v6:_Gyroscope2_oracle.lus:Gyroscope2_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +#ERROR: Output takes on nil +RifIO.Bye +Lurette launched a process that failed (exit 2). + +break signal catched + +lurettetop: bye! ++ echo error +error ++ exit 2 +FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/Gyroscope2.lus spawn ./lus2lic -o /tmp/mouse2.lic should_work/mouse2.lus PASS: ./lus2lic {-o /tmp/mouse2.lic should_work/mouse2.lus} spawn ./lus2lic -ec -o /tmp/mouse2.ec should_work/mouse2.lus PASS: ./lus2lic {-ec -o /tmp/mouse2.ec should_work/mouse2.lus} -spawn ./ec2c -o /tmp/mouse2.c /tmp/mouse2.ec -PASS: ./ec2c {-o /tmp/mouse2.c /tmp/mouse2.ec} +spawn ./myec2c -o /tmp/mouse2.c /tmp/mouse2.ec +PASS: ./myec2c {-o /tmp/mouse2.c /tmp/mouse2.ec} +spawn ../utils/test_lus2lic_no_node should_work/mouse2.lus ++ ./lus2lic should_work/mouse2.lus -n mouse2 --gen-autotest -np +_mouse2_env.lut generated. +_mouse2_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/mouse2.lus ++ ./lus2lic should_work/mouse2.lus -n mouse2 -ec -o mouse2.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:mouse2.ec:mouse2 -rp env:lutin:_mouse2_env.lut -rp oracle:v6:_mouse2_oracle.lus:mouse2_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/mouse2.lus +spawn ./lus2lic -o /tmp/modes3x2-v3.lic should_work/modes3x2-v3.lus +PASS: ./lus2lic {-o /tmp/modes3x2-v3.lic should_work/modes3x2-v3.lus} +spawn ./lus2lic -ec -o /tmp/modes3x2-v3.ec should_work/modes3x2-v3.lus +PASS: ./lus2lic {-ec -o /tmp/modes3x2-v3.ec should_work/modes3x2-v3.lus} +spawn ./myec2c -o /tmp/modes3x2-v3.c /tmp/modes3x2-v3.ec +syntax error - at line 10 +syntax errors... +FAIL: Try ec2c on the result: ./myec2c {-o /tmp/modes3x2-v3.c /tmp/modes3x2-v3.ec} spawn ./lus2lic -o /tmp/dep.lic should_work/dep.lus PASS: ./lus2lic {-o /tmp/dep.lic should_work/dep.lus} spawn ./lus2lic -ec -o /tmp/dep.ec should_work/dep.lus PASS: ./lus2lic {-ec -o /tmp/dep.ec should_work/dep.lus} -spawn ./ec2c -o /tmp/dep.c /tmp/dep.ec -PASS: ./ec2c {-o /tmp/dep.c /tmp/dep.ec} +spawn ./myec2c -o /tmp/dep.c /tmp/dep.ec +PASS: ./myec2c {-o /tmp/dep.c /tmp/dep.ec} +spawn ../utils/test_lus2lic_no_node should_work/dep.lus ++ ./lus2lic should_work/dep.lus -n dep --gen-autotest -np +_dep_env.lut generated. +_dep_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/dep.lus ++ ./lus2lic should_work/dep.lus -n dep -ec -o dep.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:dep.ec:dep -rp env:lutin:_dep_env.lut -rp oracle:v6:_dep_oracle.lus:dep_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/dep.lus spawn ./lus2lic -o /tmp/ELMU.lic should_work/ELMU.lus PASS: ./lus2lic {-o /tmp/ELMU.lic should_work/ELMU.lus} spawn ./lus2lic -ec -o /tmp/ELMU.ec should_work/ELMU.lus PASS: ./lus2lic {-ec -o /tmp/ELMU.ec should_work/ELMU.lus} -spawn ./ec2c -o /tmp/ELMU.c /tmp/ELMU.ec -PASS: ./ec2c {-o /tmp/ELMU.c /tmp/ELMU.ec} +spawn ./myec2c -o /tmp/ELMU.c /tmp/ELMU.ec +PASS: ./myec2c {-o /tmp/ELMU.c /tmp/ELMU.ec} +spawn ../utils/test_lus2lic_no_node should_work/ELMU.lus ++ ./lus2lic should_work/ELMU.lus -n ELMU --gen-autotest -np +_ELMU_env.lut generated. +_ELMU_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/ELMU.lus ++ ./lus2lic should_work/ELMU.lus -n ELMU -ec -o ELMU.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:ELMU.ec:ELMU -rp env:lutin:_ELMU_env.lut -rp oracle:v6:_ELMU_oracle.lus:ELMU_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/ELMU.lus spawn ./lus2lic -o /tmp/testPilote.lic should_work/testPilote.lus PASS: ./lus2lic {-o /tmp/testPilote.lic should_work/testPilote.lus} spawn ./lus2lic -ec -o /tmp/testPilote.ec should_work/testPilote.lus PASS: ./lus2lic {-ec -o /tmp/testPilote.ec should_work/testPilote.lus} -spawn ./ec2c -o /tmp/testPilote.c /tmp/testPilote.ec -PASS: ./ec2c {-o /tmp/testPilote.c /tmp/testPilote.ec} +spawn ./myec2c -o /tmp/testPilote.c /tmp/testPilote.ec +PASS: ./myec2c {-o /tmp/testPilote.c /tmp/testPilote.ec} +spawn ../utils/test_lus2lic_no_node should_work/testPilote.lus ++ ./lus2lic should_work/testPilote.lus -n testPilote --gen-autotest -np +_testPilote_env.lut generated. +_testPilote_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/testPilote.lus ++ ./lus2lic should_work/testPilote.lus -n testPilote -ec -o testPilote.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:testPilote.ec:testPilote -rp env:lutin:_testPilote_env.lut -rp oracle:v6:_testPilote_oracle.lus:testPilote_oracle -go -l 10 -ns2c --stop-on-oracle-error +Error in lurette: Parsing.Parse_error +Lurette launched a process that failed (exit 2). + +break signal catched + +lurettetop: bye! ++ echo error +error ++ exit 2 +FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/testPilote.lus spawn ./lus2lic -o /tmp/redIf.lic should_work/redIf.lus PASS: ./lus2lic {-o /tmp/redIf.lic should_work/redIf.lus} spawn ./lus2lic -ec -o /tmp/redIf.ec should_work/redIf.lus PASS: ./lus2lic {-ec -o /tmp/redIf.ec should_work/redIf.lus} -spawn ./ec2c -o /tmp/redIf.c /tmp/redIf.ec -PASS: ./ec2c {-o /tmp/redIf.c /tmp/redIf.ec} +spawn ./myec2c -o /tmp/redIf.c /tmp/redIf.ec +PASS: ./myec2c {-o /tmp/redIf.c /tmp/redIf.ec} +spawn ../utils/test_lus2lic_no_node should_work/redIf.lus ++ ./lus2lic should_work/redIf.lus -n redIf --gen-autotest -np +_redIf_env.lut generated. +_redIf_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/redIf.lus ++ ./lus2lic should_work/redIf.lus -n redIf -ec -o redIf.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:redIf.ec:redIf -rp env:lutin:_redIf_env.lut -rp oracle:v6:_redIf_oracle.lus:redIf_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/redIf.lus spawn ./lus2lic -o /tmp/t0.lic should_work/t0.lus PASS: ./lus2lic {-o /tmp/t0.lic should_work/t0.lus} spawn ./lus2lic -ec -o /tmp/t0.ec should_work/t0.lus PASS: ./lus2lic {-ec -o /tmp/t0.ec should_work/t0.lus} -spawn ./ec2c -o /tmp/t0.c /tmp/t0.ec -PASS: ./ec2c {-o /tmp/t0.c /tmp/t0.ec} +spawn ./myec2c -o /tmp/t0.c /tmp/t0.ec +PASS: ./myec2c {-o /tmp/t0.c /tmp/t0.ec} +spawn ../utils/test_lus2lic_no_node should_work/t0.lus ++ ./lus2lic should_work/t0.lus -n t0 --gen-autotest -np +_t0_env.lut generated. +_t0_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/t0.lus ++ ./lus2lic should_work/t0.lus -n t0 -ec -o t0.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:t0.ec:t0 -rp env:lutin:_t0_env.lut -rp oracle:v6:_t0_oracle.lus:t0_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/t0.lus spawn ./lus2lic -o /tmp/lucky.lic should_work/lucky.lus PASS: ./lus2lic {-o /tmp/lucky.lic should_work/lucky.lus} spawn ./lus2lic -ec -o /tmp/lucky.ec should_work/lucky.lus PASS: ./lus2lic {-ec -o /tmp/lucky.ec should_work/lucky.lus} -spawn ./ec2c -o /tmp/lucky.c /tmp/lucky.ec -PASS: ./ec2c {-o /tmp/lucky.c /tmp/lucky.ec} +spawn ./myec2c -o /tmp/lucky.c /tmp/lucky.ec +PASS: ./myec2c {-o /tmp/lucky.c /tmp/lucky.ec} +spawn ../utils/test_lus2lic_no_node should_work/lucky.lus ++ ./lus2lic should_work/lucky.lus -n lucky --gen-autotest -np +_lucky_env.lut generated. +_lucky_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/lucky.lus ++ ./lus2lic should_work/lucky.lus -n lucky -ec -o lucky.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:lucky.ec:lucky -rp env:lutin:_lucky_env.lut -rp oracle:v6:_lucky_oracle.lus:lucky_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/lucky.lus spawn ./lus2lic -o /tmp/heater_control.lic should_work/heater_control.lus PASS: ./lus2lic {-o /tmp/heater_control.lic should_work/heater_control.lus} spawn ./lus2lic -ec -o /tmp/heater_control.ec should_work/heater_control.lus PASS: ./lus2lic {-ec -o /tmp/heater_control.ec should_work/heater_control.lus} -spawn ./ec2c -o /tmp/heater_control.c /tmp/heater_control.ec -PASS: ./ec2c {-o /tmp/heater_control.c /tmp/heater_control.ec} +spawn ./myec2c -o /tmp/heater_control.c /tmp/heater_control.ec +PASS: ./myec2c {-o /tmp/heater_control.c /tmp/heater_control.ec} +spawn ../utils/test_lus2lic_no_node should_work/heater_control.lus ++ ./lus2lic should_work/heater_control.lus -n heater_control --gen-autotest -np +_heater_control_env.lut generated. +_heater_control_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/heater_control.lus ++ ./lus2lic should_work/heater_control.lus -n heater_control -ec -o heater_control.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:heater_control.ec:heater_control -rp env:lutin:_heater_control_env.lut -rp oracle:v6:_heater_control_oracle.lus:heater_control_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/heater_control.lus spawn ./lus2lic -o /tmp/titi.lic should_work/titi.lus PASS: ./lus2lic {-o /tmp/titi.lic should_work/titi.lus} spawn ./lus2lic -ec -o /tmp/titi.ec should_work/titi.lus PASS: ./lus2lic {-ec -o /tmp/titi.ec should_work/titi.lus} -spawn ./ec2c -o /tmp/titi.c /tmp/titi.ec -PASS: ./ec2c {-o /tmp/titi.c /tmp/titi.ec} +spawn ./myec2c -o /tmp/titi.c /tmp/titi.ec +PASS: ./myec2c {-o /tmp/titi.c /tmp/titi.ec} +spawn ../utils/test_lus2lic_no_node should_work/titi.lus ++ ./lus2lic should_work/titi.lus -n titi --gen-autotest -np +_titi_env.lut generated. +_titi_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/titi.lus ++ ./lus2lic should_work/titi.lus -n titi -ec -o titi.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:titi.ec:titi -rp env:lutin:_titi_env.lut -rp oracle:v6:_titi_oracle.lus:titi_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/titi.lus spawn ./lus2lic -o /tmp/cminus.lic should_work/cminus.lus PASS: ./lus2lic {-o /tmp/cminus.lic should_work/cminus.lus} spawn ./lus2lic -ec -o /tmp/cminus.ec should_work/cminus.lus PASS: ./lus2lic {-ec -o /tmp/cminus.ec should_work/cminus.lus} -spawn ./ec2c -o /tmp/cminus.c /tmp/cminus.ec -PASS: ./ec2c {-o /tmp/cminus.c /tmp/cminus.ec} +spawn ./myec2c -o /tmp/cminus.c /tmp/cminus.ec +PASS: ./myec2c {-o /tmp/cminus.c /tmp/cminus.ec} +spawn ../utils/test_lus2lic_no_node should_work/cminus.lus ++ ./lus2lic should_work/cminus.lus -n cminus --gen-autotest -np +_cminus_env.lut generated. +_cminus_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/cminus.lus ++ ./lus2lic should_work/cminus.lus -n cminus -ec -o cminus.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:cminus.ec:cminus -rp env:lutin:_cminus_env.lut -rp oracle:v6:_cminus_oracle.lus:cminus_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/cminus.lus spawn ./lus2lic -o /tmp/rs.lic should_work/rs.lus PASS: ./lus2lic {-o /tmp/rs.lic should_work/rs.lus} spawn ./lus2lic -ec -o /tmp/rs.ec should_work/rs.lus PASS: ./lus2lic {-ec -o /tmp/rs.ec should_work/rs.lus} -spawn ./ec2c -o /tmp/rs.c /tmp/rs.ec -PASS: ./ec2c {-o /tmp/rs.c /tmp/rs.ec} +spawn ./myec2c -o /tmp/rs.c /tmp/rs.ec +PASS: ./myec2c {-o /tmp/rs.c /tmp/rs.ec} +spawn ../utils/test_lus2lic_no_node should_work/rs.lus ++ ./lus2lic should_work/rs.lus -n rs --gen-autotest -np +_rs_env.lut generated. +_rs_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/rs.lus ++ ./lus2lic should_work/rs.lus -n rs -ec -o rs.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:rs.ec:rs -rp env:lutin:_rs_env.lut -rp oracle:v6:_rs_oracle.lus:rs_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/rs.lus spawn ./lus2lic -o /tmp/access.lic should_work/access.lus PASS: ./lus2lic {-o /tmp/access.lic should_work/access.lus} spawn ./lus2lic -ec -o /tmp/access.ec should_work/access.lus PASS: ./lus2lic {-ec -o /tmp/access.ec should_work/access.lus} -spawn ./ec2c -o /tmp/access.c /tmp/access.ec -PASS: ./ec2c {-o /tmp/access.c /tmp/access.ec} -spawn ./lus2lic -o /tmp/aux.lic should_work/aux.lus -PASS: ./lus2lic {-o /tmp/aux.lic should_work/aux.lus} -spawn ./lus2lic -ec -o /tmp/aux.ec should_work/aux.lus -PASS: ./lus2lic {-ec -o /tmp/aux.ec should_work/aux.lus} -spawn ./ec2c -o /tmp/aux.c /tmp/aux.ec -PASS: ./ec2c {-o /tmp/aux.c /tmp/aux.ec} +spawn ./myec2c -o /tmp/access.c /tmp/access.ec +PASS: ./myec2c {-o /tmp/access.c /tmp/access.ec} +spawn ../utils/test_lus2lic_no_node should_work/access.lus ++ ./lus2lic should_work/access.lus -n access --gen-autotest -np +_access_env.lut generated. +_access_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/access.lus ++ ./lus2lic should_work/access.lus -n access -ec -o access.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:access.ec:access -rp env:lutin:_access_env.lut -rp oracle:v6:_access_oracle.lus:access_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/access.lus spawn ./lus2lic -o /tmp/consensus2.lic should_work/consensus2.lus PASS: ./lus2lic {-o /tmp/consensus2.lic should_work/consensus2.lus} spawn ./lus2lic -ec -o /tmp/consensus2.ec should_work/consensus2.lus PASS: ./lus2lic {-ec -o /tmp/consensus2.ec should_work/consensus2.lus} -spawn ./ec2c -o /tmp/consensus2.c /tmp/consensus2.ec -PASS: ./ec2c {-o /tmp/consensus2.c /tmp/consensus2.ec} +spawn ./myec2c -o /tmp/consensus2.c /tmp/consensus2.ec +PASS: ./myec2c {-o /tmp/consensus2.c /tmp/consensus2.ec} +spawn ../utils/test_lus2lic_no_node should_work/consensus2.lus ++ ./lus2lic should_work/consensus2.lus -n consensus2 --gen-autotest -np +_consensus2_env.lut generated. +_consensus2_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/consensus2.lus ++ ./lus2lic should_work/consensus2.lus -n consensus2 -ec -o consensus2.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:consensus2.ec:consensus2 -rp env:lutin:_consensus2_env.lut -rp oracle:v6:_consensus2_oracle.lus:consensus2_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/consensus2.lus spawn ./lus2lic -o /tmp/dependeur.lic should_work/dependeur.lus PASS: ./lus2lic {-o /tmp/dependeur.lic should_work/dependeur.lus} spawn ./lus2lic -ec -o /tmp/dependeur.ec should_work/dependeur.lus PASS: ./lus2lic {-ec -o /tmp/dependeur.ec should_work/dependeur.lus} -spawn ./ec2c -o /tmp/dependeur.c /tmp/dependeur.ec -PASS: ./ec2c {-o /tmp/dependeur.c /tmp/dependeur.ec} +spawn ./myec2c -o /tmp/dependeur.c /tmp/dependeur.ec +PASS: ./myec2c {-o /tmp/dependeur.c /tmp/dependeur.ec} +spawn ../utils/test_lus2lic_no_node should_work/dependeur.lus ++ ./lus2lic should_work/dependeur.lus -n dependeur --gen-autotest -np +_dependeur_env.lut generated. +_dependeur_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/dependeur.lus ++ ./lus2lic should_work/dependeur.lus -n dependeur -ec -o dependeur.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:dependeur.ec:dependeur -rp env:lutin:_dependeur_env.lut -rp oracle:v6:_dependeur_oracle.lus:dependeur_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/dependeur.lus spawn ./lus2lic -o /tmp/mappredef.lic should_work/mappredef.lus PASS: ./lus2lic {-o /tmp/mappredef.lic should_work/mappredef.lus} spawn ./lus2lic -ec -o /tmp/mappredef.ec should_work/mappredef.lus PASS: ./lus2lic {-ec -o /tmp/mappredef.ec should_work/mappredef.lus} -spawn ./ec2c -o /tmp/mappredef.c /tmp/mappredef.ec -PASS: ./ec2c {-o /tmp/mappredef.c /tmp/mappredef.ec} +spawn ./myec2c -o /tmp/mappredef.c /tmp/mappredef.ec +PASS: ./myec2c {-o /tmp/mappredef.c /tmp/mappredef.ec} +spawn ../utils/test_lus2lic_no_node should_work/mappredef.lus ++ ./lus2lic should_work/mappredef.lus -n mappredef --gen-autotest -np +_mappredef_env.lut generated. +_mappredef_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/mappredef.lus ++ ./lus2lic should_work/mappredef.lus -n mappredef -ec -o mappredef.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:mappredef.ec:mappredef -rp env:lutin:_mappredef_env.lut -rp oracle:v6:_mappredef_oracle.lus:mappredef_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/mappredef.lus spawn ./lus2lic -o /tmp/call06.lic should_work/call06.lus PASS: ./lus2lic {-o /tmp/call06.lic should_work/call06.lus} spawn ./lus2lic -ec -o /tmp/call06.ec should_work/call06.lus PASS: ./lus2lic {-ec -o /tmp/call06.ec should_work/call06.lus} -spawn ./ec2c -o /tmp/call06.c /tmp/call06.ec -PASS: ./ec2c {-o /tmp/call06.c /tmp/call06.ec} +spawn ./myec2c -o /tmp/call06.c /tmp/call06.ec +PASS: ./myec2c {-o /tmp/call06.c /tmp/call06.ec} +spawn ../utils/test_lus2lic_no_node should_work/call06.lus ++ ./lus2lic should_work/call06.lus -n call06 --gen-autotest -np +*** The soc of call06::bip is not defined. FINISH ME! +Extern node not yet supported, sorry + +*** oops: lus2lic internal error + File "src/lic2soc.ml", line 897, column 14 +*** when compiling lustre program should_work/call06.lus + +*** You migth want to sent a bug report to jahier@imag.fr ++ echo Error +Error ++ exit 2 +FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/call06.lus spawn ./lus2lic -o /tmp/deSimone.lic should_work/deSimone.lus PASS: ./lus2lic {-o /tmp/deSimone.lic should_work/deSimone.lus} spawn ./lus2lic -ec -o /tmp/deSimone.ec should_work/deSimone.lus PASS: ./lus2lic {-ec -o /tmp/deSimone.ec should_work/deSimone.lus} -spawn ./ec2c -o /tmp/deSimone.c /tmp/deSimone.ec -PASS: ./ec2c {-o /tmp/deSimone.c /tmp/deSimone.ec} +spawn ./myec2c -o /tmp/deSimone.c /tmp/deSimone.ec +PASS: ./myec2c {-o /tmp/deSimone.c /tmp/deSimone.ec} +spawn ../utils/test_lus2lic_no_node should_work/deSimone.lus ++ ./lus2lic should_work/deSimone.lus -n deSimone --gen-autotest -np +_deSimone_env.lut generated. +_deSimone_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/deSimone.lus ++ ./lus2lic should_work/deSimone.lus -n deSimone -ec -o deSimone.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:deSimone.ec:deSimone -rp env:lutin:_deSimone_env.lut -rp oracle:v6:_deSimone_oracle.lus:deSimone_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. + +*** The oracle returned false at step 6 +Other Oracle outputs that are true: + acknowledge_bis_1 +Oracle outputs that are false: + acknowledge_bis_0 + acknowledge_bis_2 + acknowledge_bis_3 + acknowledge_bis_4 + acknowledge_bis_5 + acknowledge_bis_6 + acknowledge_bis_7 + acknowledge_bis_8 + acknowledge_bis_9 +Oracle inputs: + new_token=t + request_0=f + request_1=t + request_2=t + request_3=f + request_4=t + request_5=t + request_6=t + request_7=f + request_8=f + request_9=f + acknowledge_0=f + acknowledge_1=f + acknowledge_2=f + acknowledge_3=f + acknowledge_4=f + acknowledge_5=f + acknowledge_6=f + acknowledge_7=f + acknowledge_8=f + acknowledge_9=f + +*** The oracle returned false at step 6 +Other Oracle outputs that are true: + acknowledge_bis_1 +Oracle outputs that are false: + acknowledge_bis_0 + acknowledge_bis_2 + acknowledge_bis_3 + acknowledge_bis_4 + acknowledge_bis_5 + acknowledge_bis_6 + acknowledge_bis_7 + acknowledge_bis_8 + acknowledge_bis_9 +Oracle inputs: + new_token=t + request_0=f + request_1=t + request_2=t + request_3=f + request_4=t + request_5=t + request_6=t + request_7=f + request_8=f + request_9=f + acknowledge_0=f + acknowledge_1=f + acknowledge_2=f + acknowledge_3=f + acknowledge_4=f + acknowledge_5=f + acknowledge_6=f + acknowledge_7=f + acknowledge_8=f + acknowledge_9=f + +Lurette launched a process that failed (exit 2). + +break signal catched + +lurettetop: bye! ++ echo error +error ++ exit 2 +FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/deSimone.lus spawn ./lus2lic -o /tmp/bug2.lic should_work/bug2.lus PASS: ./lus2lic {-o /tmp/bug2.lic should_work/bug2.lus} spawn ./lus2lic -ec -o /tmp/bug2.ec should_work/bug2.lus PASS: ./lus2lic {-ec -o /tmp/bug2.ec should_work/bug2.lus} -spawn ./ec2c -o /tmp/bug2.c /tmp/bug2.ec -PASS: ./ec2c {-o /tmp/bug2.c /tmp/bug2.ec} +spawn ./myec2c -o /tmp/bug2.c /tmp/bug2.ec +PASS: ./myec2c {-o /tmp/bug2.c /tmp/bug2.ec} +spawn ../utils/test_lus2lic_no_node should_work/bug2.lus ++ ./lus2lic should_work/bug2.lus -n bug2 --gen-autotest -np +_bug2_env.lut generated. +_bug2_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/bug2.lus ++ ./lus2lic should_work/bug2.lus -n bug2 -ec -o bug2.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:bug2.ec:bug2 -rp env:lutin:_bug2_env.lut -rp oracle:v6:_bug2_oracle.lus:bug2_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/bug2.lus spawn ./lus2lic -o /tmp/mm.lic should_work/mm.lus PASS: ./lus2lic {-o /tmp/mm.lic should_work/mm.lus} spawn ./lus2lic -ec -o /tmp/mm.ec should_work/mm.lus PASS: ./lus2lic {-ec -o /tmp/mm.ec should_work/mm.lus} -spawn ./ec2c -o /tmp/mm.c /tmp/mm.ec -PASS: ./ec2c {-o /tmp/mm.c /tmp/mm.ec} +spawn ./myec2c -o /tmp/mm.c /tmp/mm.ec +PASS: ./myec2c {-o /tmp/mm.c /tmp/mm.ec} +spawn ../utils/test_lus2lic_no_node should_work/mm.lus ++ ./lus2lic should_work/mm.lus -n mm --gen-autotest -np +_mm_env.lut generated. +_mm_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/mm.lus ++ ./lus2lic should_work/mm.lus -n mm -ec -o mm.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:mm.ec:mm -rp env:lutin:_mm_env.lut -rp oracle:v6:_mm_oracle.lus:mm_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/mm.lus spawn ./lus2lic -o /tmp/yyy.lic should_work/yyy.lus PASS: ./lus2lic {-o /tmp/yyy.lic should_work/yyy.lus} spawn ./lus2lic -ec -o /tmp/yyy.ec should_work/yyy.lus PASS: ./lus2lic {-ec -o /tmp/yyy.ec should_work/yyy.lus} -spawn ./ec2c -o /tmp/yyy.c /tmp/yyy.ec -PASS: ./ec2c {-o /tmp/yyy.c /tmp/yyy.ec} +spawn ./myec2c -o /tmp/yyy.c /tmp/yyy.ec +PASS: ./myec2c {-o /tmp/yyy.c /tmp/yyy.ec} +spawn ../utils/test_lus2lic_no_node should_work/yyy.lus ++ ./lus2lic should_work/yyy.lus -n yyy --gen-autotest -np +_yyy_env.lut generated. +_yyy_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/yyy.lus ++ ./lus2lic should_work/yyy.lus -n yyy -ec -o yyy.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:yyy.ec:yyy -rp env:lutin:_yyy_env.lut -rp oracle:v6:_yyy_oracle.lus:yyy_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/yyy.lus spawn ./lus2lic -o /tmp/toolate.lic should_work/toolate.lus PASS: ./lus2lic {-o /tmp/toolate.lic should_work/toolate.lus} spawn ./lus2lic -ec -o /tmp/toolate.ec should_work/toolate.lus PASS: ./lus2lic {-ec -o /tmp/toolate.ec should_work/toolate.lus} -spawn ./ec2c -o /tmp/toolate.c /tmp/toolate.ec -PASS: ./ec2c {-o /tmp/toolate.c /tmp/toolate.ec} +spawn ./myec2c -o /tmp/toolate.c /tmp/toolate.ec +PASS: ./myec2c {-o /tmp/toolate.c /tmp/toolate.ec} +spawn ../utils/test_lus2lic_no_node should_work/toolate.lus ++ ./lus2lic should_work/toolate.lus -n toolate --gen-autotest -np +_toolate_env.lut generated. +_toolate_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/toolate.lus ++ ./lus2lic should_work/toolate.lus -n toolate -ec -o toolate.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:toolate.ec:toolate -rp env:lutin:_toolate_env.lut -rp oracle:v6:_toolate_oracle.lus:toolate_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/toolate.lus spawn ./lus2lic -o /tmp/testCapt.lic should_work/testCapt.lus PASS: ./lus2lic {-o /tmp/testCapt.lic should_work/testCapt.lus} spawn ./lus2lic -ec -o /tmp/testCapt.ec should_work/testCapt.lus PASS: ./lus2lic {-ec -o /tmp/testCapt.ec should_work/testCapt.lus} -spawn ./ec2c -o /tmp/testCapt.c /tmp/testCapt.ec -PASS: ./ec2c {-o /tmp/testCapt.c /tmp/testCapt.ec} +spawn ./myec2c -o /tmp/testCapt.c /tmp/testCapt.ec +PASS: ./myec2c {-o /tmp/testCapt.c /tmp/testCapt.ec} +spawn ../utils/test_lus2lic_no_node should_work/testCapt.lus ++ ./lus2lic should_work/testCapt.lus -n testCapt --gen-autotest -np +_testCapt_env.lut generated. +_testCapt_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/testCapt.lus ++ ./lus2lic should_work/testCapt.lus -n testCapt -ec -o testCapt.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:testCapt.ec:testCapt -rp env:lutin:_testCapt_env.lut -rp oracle:v6:_testCapt_oracle.lus:testCapt_oracle -go -l 10 -ns2c --stop-on-oracle-error +Error in lurette: Parsing.Parse_error +Lurette launched a process that failed (exit 2). + +break signal catched + +lurettetop: bye! ++ echo error +error ++ exit 2 +FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/testCapt.lus spawn ./lus2lic -o /tmp/nc7.lic should_work/nc7.lus PASS: ./lus2lic {-o /tmp/nc7.lic should_work/nc7.lus} spawn ./lus2lic -ec -o /tmp/nc7.ec should_work/nc7.lus PASS: ./lus2lic {-ec -o /tmp/nc7.ec should_work/nc7.lus} -spawn ./ec2c -o /tmp/nc7.c /tmp/nc7.ec -PASS: ./ec2c {-o /tmp/nc7.c /tmp/nc7.ec} +spawn ./myec2c -o /tmp/nc7.c /tmp/nc7.ec +PASS: ./myec2c {-o /tmp/nc7.c /tmp/nc7.ec} +spawn ../utils/test_lus2lic_no_node should_work/nc7.lus ++ ./lus2lic should_work/nc7.lus -n nc7 --gen-autotest -np +_nc7_env.lut generated. +_nc7_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/nc7.lus ++ ./lus2lic should_work/nc7.lus -n nc7 -ec -o nc7.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:nc7.ec:nc7 -rp env:lutin:_nc7_env.lut -rp oracle:v6:_nc7_oracle.lus:nc7_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/nc7.lus spawn ./lus2lic -o /tmp/predefOp.lic should_work/predefOp.lus PASS: ./lus2lic {-o /tmp/predefOp.lic should_work/predefOp.lus} spawn ./lus2lic -ec -o /tmp/predefOp.ec should_work/predefOp.lus PASS: ./lus2lic {-ec -o /tmp/predefOp.ec should_work/predefOp.lus} -spawn ./ec2c -o /tmp/predefOp.c /tmp/predefOp.ec -PASS: ./ec2c {-o /tmp/predefOp.c /tmp/predefOp.ec} +spawn ./myec2c -o /tmp/predefOp.c /tmp/predefOp.ec +PASS: ./myec2c {-o /tmp/predefOp.c /tmp/predefOp.ec} +spawn ../utils/test_lus2lic_no_node should_work/predefOp.lus ++ ./lus2lic should_work/predefOp.lus -n predefOp --gen-autotest -np +_predefOp_env.lut generated. +_predefOp_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/predefOp.lus ++ ./lus2lic should_work/predefOp.lus -n predefOp -ec -o predefOp.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:predefOp.ec:predefOp -rp env:lutin:_predefOp_env.lut -rp oracle:v6:_predefOp_oracle.lus:predefOp_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/predefOp.lus spawn ./lus2lic -o /tmp/t1.lic should_work/t1.lus PASS: ./lus2lic {-o /tmp/t1.lic should_work/t1.lus} spawn ./lus2lic -ec -o /tmp/t1.ec should_work/t1.lus PASS: ./lus2lic {-ec -o /tmp/t1.ec should_work/t1.lus} -spawn ./ec2c -o /tmp/t1.c /tmp/t1.ec -PASS: ./ec2c {-o /tmp/t1.c /tmp/t1.ec} +spawn ./myec2c -o /tmp/t1.c /tmp/t1.ec +PASS: ./myec2c {-o /tmp/t1.c /tmp/t1.ec} +spawn ../utils/test_lus2lic_no_node should_work/t1.lus ++ ./lus2lic should_work/t1.lus -n t1 --gen-autotest -np +_t1_env.lut generated. +_t1_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/t1.lus ++ ./lus2lic should_work/t1.lus -n t1 -ec -o t1.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:t1.ec:t1 -rp env:lutin:_t1_env.lut -rp oracle:v6:_t1_oracle.lus:t1_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/t1.lus spawn ./lus2lic -o /tmp/nc9.lic should_work/nc9.lus PASS: ./lus2lic {-o /tmp/nc9.lic should_work/nc9.lus} spawn ./lus2lic -ec -o /tmp/nc9.ec should_work/nc9.lus PASS: ./lus2lic {-ec -o /tmp/nc9.ec should_work/nc9.lus} -spawn ./ec2c -o /tmp/nc9.c /tmp/nc9.ec -PASS: ./ec2c {-o /tmp/nc9.c /tmp/nc9.ec} +spawn ./myec2c -o /tmp/nc9.c /tmp/nc9.ec +PASS: ./myec2c {-o /tmp/nc9.c /tmp/nc9.ec} +spawn ../utils/test_lus2lic_no_node should_work/nc9.lus ++ ./lus2lic should_work/nc9.lus -n nc9 --gen-autotest -np +_nc9_env.lut generated. +_nc9_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/nc9.lus ++ ./lus2lic should_work/nc9.lus -n nc9 -ec -o nc9.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:nc9.ec:nc9 -rp env:lutin:_nc9_env.lut -rp oracle:v6:_nc9_oracle.lus:nc9_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/nc9.lus spawn ./lus2lic -o /tmp/packageTableau.lic should_work/packageTableau.lus PASS: ./lus2lic {-o /tmp/packageTableau.lic should_work/packageTableau.lus} spawn ./lus2lic -ec -o /tmp/packageTableau.ec should_work/packageTableau.lus PASS: ./lus2lic {-ec -o /tmp/packageTableau.ec should_work/packageTableau.lus} -spawn ./ec2c -o /tmp/packageTableau.c /tmp/packageTableau.ec -PASS: ./ec2c {-o /tmp/packageTableau.c /tmp/packageTableau.ec} -spawn ./lus2lic -o /tmp/car-V2.lic should_work/car-V2.lus -PASS: ./lus2lic {-o /tmp/car-V2.lic should_work/car-V2.lus} -spawn ./lus2lic -ec -o /tmp/car-V2.ec should_work/car-V2.lus -PASS: ./lus2lic {-ec -o /tmp/car-V2.ec should_work/car-V2.lus} -spawn ./ec2c -o /tmp/car-V2.c /tmp/car-V2.ec -PASS: ./ec2c {-o /tmp/car-V2.c /tmp/car-V2.ec} +spawn ./myec2c -o /tmp/packageTableau.c /tmp/packageTableau.ec +PASS: ./myec2c {-o /tmp/packageTableau.c /tmp/packageTableau.ec} +spawn ../utils/test_lus2lic_no_node should_work/packageTableau.lus ++ ./lus2lic should_work/packageTableau.lus -n packageTableau --gen-autotest -np +*** Can not find package 'packageTableau' in the following packages: +*** 'util' +*** 'main' +*** 'intArray' ++ echo Error +Error ++ exit 2 +FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/packageTableau.lus spawn ./lus2lic -o /tmp/nc8.lic should_work/nc8.lus PASS: ./lus2lic {-o /tmp/nc8.lic should_work/nc8.lus} spawn ./lus2lic -ec -o /tmp/nc8.ec should_work/nc8.lus PASS: ./lus2lic {-ec -o /tmp/nc8.ec should_work/nc8.lus} -spawn ./ec2c -o /tmp/nc8.c /tmp/nc8.ec -PASS: ./ec2c {-o /tmp/nc8.c /tmp/nc8.ec} +spawn ./myec2c -o /tmp/nc8.c /tmp/nc8.ec +PASS: ./myec2c {-o /tmp/nc8.c /tmp/nc8.ec} +spawn ../utils/test_lus2lic_no_node should_work/nc8.lus ++ ./lus2lic should_work/nc8.lus -n nc8 --gen-autotest -np +_nc8_env.lut generated. +_nc8_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/nc8.lus ++ ./lus2lic should_work/nc8.lus -n nc8 -ec -o nc8.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:nc8.ec:nc8 -rp env:lutin:_nc8_env.lut -rp oracle:v6:_nc8_oracle.lus:nc8_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/nc8.lus spawn ./lus2lic -o /tmp/minmax5.lic should_work/minmax5.lus PASS: ./lus2lic {-o /tmp/minmax5.lic should_work/minmax5.lus} spawn ./lus2lic -ec -o /tmp/minmax5.ec should_work/minmax5.lus PASS: ./lus2lic {-ec -o /tmp/minmax5.ec should_work/minmax5.lus} -spawn ./ec2c -o /tmp/minmax5.c /tmp/minmax5.ec -PASS: ./ec2c {-o /tmp/minmax5.c /tmp/minmax5.ec} +spawn ./myec2c -o /tmp/minmax5.c /tmp/minmax5.ec +PASS: ./myec2c {-o /tmp/minmax5.c /tmp/minmax5.ec} +spawn ../utils/test_lus2lic_no_node should_work/minmax5.lus ++ ./lus2lic should_work/minmax5.lus -n minmax5 --gen-autotest -np +*** The soc of minmax5::minmax is not defined. FINISH ME! +Extern node not yet supported, sorry + +*** oops: lus2lic internal error + File "src/lic2soc.ml", line 897, column 14 +*** when compiling lustre program should_work/minmax5.lus + +*** You migth want to sent a bug report to jahier@imag.fr ++ echo Error +Error ++ exit 2 +FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/minmax5.lus spawn ./lus2lic -o /tmp/mm1.lic should_work/mm1.lus PASS: ./lus2lic {-o /tmp/mm1.lic should_work/mm1.lus} spawn ./lus2lic -ec -o /tmp/mm1.ec should_work/mm1.lus PASS: ./lus2lic {-ec -o /tmp/mm1.ec should_work/mm1.lus} -spawn ./ec2c -o /tmp/mm1.c /tmp/mm1.ec -PASS: ./ec2c {-o /tmp/mm1.c /tmp/mm1.ec} +spawn ./myec2c -o /tmp/mm1.c /tmp/mm1.ec +PASS: ./myec2c {-o /tmp/mm1.c /tmp/mm1.ec} +spawn ../utils/test_lus2lic_no_node should_work/mm1.lus ++ ./lus2lic should_work/mm1.lus -n mm1 --gen-autotest -np +_mm1_env.lut generated. +_mm1_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/mm1.lus ++ ./lus2lic should_work/mm1.lus -n mm1 -ec -o mm1.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:mm1.ec:mm1 -rp env:lutin:_mm1_env.lut -rp oracle:v6:_mm1_oracle.lus:mm1_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/mm1.lus spawn ./lus2lic -o /tmp/predef03.lic should_work/predef03.lus PASS: ./lus2lic {-o /tmp/predef03.lic should_work/predef03.lus} spawn ./lus2lic -ec -o /tmp/predef03.ec should_work/predef03.lus PASS: ./lus2lic {-ec -o /tmp/predef03.ec should_work/predef03.lus} -spawn ./ec2c -o /tmp/predef03.c /tmp/predef03.ec -PASS: ./ec2c {-o /tmp/predef03.c /tmp/predef03.ec} +spawn ./myec2c -o /tmp/predef03.c /tmp/predef03.ec +PASS: ./myec2c {-o /tmp/predef03.c /tmp/predef03.ec} +spawn ../utils/test_lus2lic_no_node should_work/predef03.lus ++ ./lus2lic should_work/predef03.lus -n predef03 --gen-autotest -np +_predef03_env.lut generated. +_predef03_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/predef03.lus ++ ./lus2lic should_work/predef03.lus -n predef03 -ec -o predef03.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:predef03.ec:predef03 -rp env:lutin:_predef03_env.lut -rp oracle:v6:_predef03_oracle.lus:predef03_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/predef03.lus spawn ./lus2lic -o /tmp/iter.lic should_work/iter.lus PASS: ./lus2lic {-o /tmp/iter.lic should_work/iter.lus} spawn ./lus2lic -ec -o /tmp/iter.ec should_work/iter.lus PASS: ./lus2lic {-ec -o /tmp/iter.ec should_work/iter.lus} -spawn ./ec2c -o /tmp/iter.c /tmp/iter.ec -PASS: ./ec2c {-o /tmp/iter.c /tmp/iter.ec} +spawn ./myec2c -o /tmp/iter.c /tmp/iter.ec +PASS: ./myec2c {-o /tmp/iter.c /tmp/iter.ec} +spawn ../utils/test_lus2lic_no_node should_work/iter.lus ++ ./lus2lic should_work/iter.lus -n iter --gen-autotest -np +_iter_env.lut generated. +_iter_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/iter.lus ++ ./lus2lic should_work/iter.lus -n iter -ec -o iter.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:iter.ec:iter -rp env:lutin:_iter_env.lut -rp oracle:v6:_iter_oracle.lus:iter_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/iter.lus spawn ./lus2lic -o /tmp/call05.lic should_work/call05.lus PASS: ./lus2lic {-o /tmp/call05.lic should_work/call05.lus} spawn ./lus2lic -ec -o /tmp/call05.ec should_work/call05.lus PASS: ./lus2lic {-ec -o /tmp/call05.ec should_work/call05.lus} -spawn ./ec2c -o /tmp/call05.c /tmp/call05.ec -PASS: ./ec2c {-o /tmp/call05.c /tmp/call05.ec} +spawn ./myec2c -o /tmp/call05.c /tmp/call05.ec +Segmentation fault +FAIL: Try ec2c on the result: ./myec2c {-o /tmp/call05.c /tmp/call05.ec} spawn ./lus2lic -o /tmp/Watch.lic should_work/Watch.lus PASS: ./lus2lic {-o /tmp/Watch.lic should_work/Watch.lus} spawn ./lus2lic -ec -o /tmp/Watch.ec should_work/Watch.lus PASS: ./lus2lic {-ec -o /tmp/Watch.ec should_work/Watch.lus} -spawn ./ec2c -o /tmp/Watch.c /tmp/Watch.ec -PASS: ./ec2c {-o /tmp/Watch.c /tmp/Watch.ec} +spawn ./myec2c -o /tmp/Watch.c /tmp/Watch.ec +Segmentation fault +FAIL: Try ec2c on the result: ./myec2c {-o /tmp/Watch.c /tmp/Watch.ec} spawn ./lus2lic -o /tmp/testBoite.lic should_work/testBoite.lus PASS: ./lus2lic {-o /tmp/testBoite.lic should_work/testBoite.lus} spawn ./lus2lic -ec -o /tmp/testBoite.ec should_work/testBoite.lus PASS: ./lus2lic {-ec -o /tmp/testBoite.ec should_work/testBoite.lus} -spawn ./ec2c -o /tmp/testBoite.c /tmp/testBoite.ec -PASS: ./ec2c {-o /tmp/testBoite.c /tmp/testBoite.ec} +spawn ./myec2c -o /tmp/testBoite.c /tmp/testBoite.ec +PASS: ./myec2c {-o /tmp/testBoite.c /tmp/testBoite.ec} +spawn ../utils/test_lus2lic_no_node should_work/testBoite.lus ++ ./lus2lic should_work/testBoite.lus -n testBoite --gen-autotest -np +*** Can not find package 'testBoite' in the following packages: +*** 'boite' ++ echo Error +Error ++ exit 2 +FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/testBoite.lus spawn ./lus2lic -o /tmp/node_caller1.lic should_work/node_caller1.lus PASS: ./lus2lic {-o /tmp/node_caller1.lic should_work/node_caller1.lus} spawn ./lus2lic -ec -o /tmp/node_caller1.ec should_work/node_caller1.lus PASS: ./lus2lic {-ec -o /tmp/node_caller1.ec should_work/node_caller1.lus} -spawn ./ec2c -o /tmp/node_caller1.c /tmp/node_caller1.ec -PASS: ./ec2c {-o /tmp/node_caller1.c /tmp/node_caller1.ec} +spawn ./myec2c -o /tmp/node_caller1.c /tmp/node_caller1.ec +PASS: ./myec2c {-o /tmp/node_caller1.c /tmp/node_caller1.ec} +spawn ../utils/test_lus2lic_no_node should_work/node_caller1.lus ++ ./lus2lic should_work/node_caller1.lus -n node_caller1 --gen-autotest -np +_node_caller1_env.lut generated. +_node_caller1_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/node_caller1.lus ++ ./lus2lic should_work/node_caller1.lus -n node_caller1 -ec -o node_caller1.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:node_caller1.ec:node_caller1 -rp env:lutin:_node_caller1_env.lut -rp oracle:v6:_node_caller1_oracle.lus:node_caller1_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/node_caller1.lus spawn ./lus2lic -o /tmp/nc1.lic should_work/nc1.lus PASS: ./lus2lic {-o /tmp/nc1.lic should_work/nc1.lus} spawn ./lus2lic -ec -o /tmp/nc1.ec should_work/nc1.lus PASS: ./lus2lic {-ec -o /tmp/nc1.ec should_work/nc1.lus} -spawn ./ec2c -o /tmp/nc1.c /tmp/nc1.ec -PASS: ./ec2c {-o /tmp/nc1.c /tmp/nc1.ec} +spawn ./myec2c -o /tmp/nc1.c /tmp/nc1.ec +PASS: ./myec2c {-o /tmp/nc1.c /tmp/nc1.ec} +spawn ../utils/test_lus2lic_no_node should_work/nc1.lus ++ ./lus2lic should_work/nc1.lus -n nc1 --gen-autotest -np +_nc1_env.lut generated. +_nc1_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/nc1.lus ++ ./lus2lic should_work/nc1.lus -n nc1 -ec -o nc1.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:nc1.ec:nc1 -rp env:lutin:_nc1_env.lut -rp oracle:v6:_nc1_oracle.lus:nc1_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/nc1.lus spawn ./lus2lic -o /tmp/test_node_expand2.lic should_work/test_node_expand2.lus PASS: ./lus2lic {-o /tmp/test_node_expand2.lic should_work/test_node_expand2.lus} spawn ./lus2lic -ec -o /tmp/test_node_expand2.ec should_work/test_node_expand2.lus PASS: ./lus2lic {-ec -o /tmp/test_node_expand2.ec should_work/test_node_expand2.lus} -spawn ./ec2c -o /tmp/test_node_expand2.c /tmp/test_node_expand2.ec -PASS: ./ec2c {-o /tmp/test_node_expand2.c /tmp/test_node_expand2.ec} +spawn ./myec2c -o /tmp/test_node_expand2.c /tmp/test_node_expand2.ec +PASS: ./myec2c {-o /tmp/test_node_expand2.c /tmp/test_node_expand2.ec} +spawn ../utils/test_lus2lic_no_node should_work/test_node_expand2.lus ++ ./lus2lic should_work/test_node_expand2.lus -n test_node_expand2 --gen-autotest -np +_test_node_expand2_env.lut generated. +_test_node_expand2_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/test_node_expand2.lus ++ ./lus2lic should_work/test_node_expand2.lus -n test_node_expand2 -ec -o test_node_expand2.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:test_node_expand2.ec:test_node_expand2 -rp env:lutin:_test_node_expand2_env.lut -rp oracle:v6:_test_node_expand2_oracle.lus:test_node_expand2_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +Failure occured in lurette: int_of_string +Lurette launched a process that failed (exit 2). + +break signal catched + +lurettetop: bye! ++ echo error +error ++ exit 2 +FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/test_node_expand2.lus spawn ./lus2lic -o /tmp/test.lic should_work/test.lus PASS: ./lus2lic {-o /tmp/test.lic should_work/test.lus} spawn ./lus2lic -ec -o /tmp/test.ec should_work/test.lus PASS: ./lus2lic {-ec -o /tmp/test.ec should_work/test.lus} -spawn ./ec2c -o /tmp/test.c /tmp/test.ec -PASS: ./ec2c {-o /tmp/test.c /tmp/test.ec} +spawn ./myec2c -o /tmp/test.c /tmp/test.ec +PASS: ./myec2c {-o /tmp/test.c /tmp/test.ec} +spawn ../utils/test_lus2lic_no_node should_work/test.lus ++ ./lus2lic should_work/test.lus -n test --gen-autotest -np +_test_env.lut generated. +_test_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/test.lus ++ ./lus2lic should_work/test.lus -n test -ec -o test.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:test.ec:test -rp env:lutin:_test_env.lut -rp oracle:v6:_test_oracle.lus:test_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. + +*** The oracle returned false at step 1 +Other Oracle outputs that are true: + b3_bis + b5_bis +Oracle outputs that are false: + b4_bis + b6_bis +Oracle inputs: + b1=t + b2=f + b3=t + b4=t + b5=t + b6=f + +*** The oracle returned false at step 1 +Other Oracle outputs that are true: + b3_bis + b5_bis +Oracle outputs that are false: + b4_bis + b6_bis +Oracle inputs: + b1=t + b2=f + b3=t + b4=t + b5=t + b6=f + +Lurette launched a process that failed (exit 2). + +break signal catched + +lurettetop: bye! ++ echo error +error ++ exit 2 +FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/test.lus spawn ./lus2lic -o /tmp/FALLING_EDGE.lic should_work/FALLING_EDGE.lus PASS: ./lus2lic {-o /tmp/FALLING_EDGE.lic should_work/FALLING_EDGE.lus} spawn ./lus2lic -ec -o /tmp/FALLING_EDGE.ec should_work/FALLING_EDGE.lus PASS: ./lus2lic {-ec -o /tmp/FALLING_EDGE.ec should_work/FALLING_EDGE.lus} -spawn ./ec2c -o /tmp/FALLING_EDGE.c /tmp/FALLING_EDGE.ec -PASS: ./ec2c {-o /tmp/FALLING_EDGE.c /tmp/FALLING_EDGE.ec} +spawn ./myec2c -o /tmp/FALLING_EDGE.c /tmp/FALLING_EDGE.ec +PASS: ./myec2c {-o /tmp/FALLING_EDGE.c /tmp/FALLING_EDGE.ec} +spawn ../utils/test_lus2lic_no_node should_work/FALLING_EDGE.lus ++ ./lus2lic should_work/FALLING_EDGE.lus -n FALLING_EDGE --gen-autotest -np +_FALLING_EDGE_env.lut generated. +_FALLING_EDGE_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/FALLING_EDGE.lus ++ ./lus2lic should_work/FALLING_EDGE.lus -n FALLING_EDGE -ec -o FALLING_EDGE.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:FALLING_EDGE.ec:FALLING_EDGE -rp env:lutin:_FALLING_EDGE_env.lut -rp oracle:v6:_FALLING_EDGE_oracle.lus:FALLING_EDGE_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/FALLING_EDGE.lus spawn ./lus2lic -o /tmp/SWITCH.lic should_work/SWITCH.lus PASS: ./lus2lic {-o /tmp/SWITCH.lic should_work/SWITCH.lus} spawn ./lus2lic -ec -o /tmp/SWITCH.ec should_work/SWITCH.lus PASS: ./lus2lic {-ec -o /tmp/SWITCH.ec should_work/SWITCH.lus} -spawn ./ec2c -o /tmp/SWITCH.c /tmp/SWITCH.ec -PASS: ./ec2c {-o /tmp/SWITCH.c /tmp/SWITCH.ec} +spawn ./myec2c -o /tmp/SWITCH.c /tmp/SWITCH.ec +PASS: ./myec2c {-o /tmp/SWITCH.c /tmp/SWITCH.ec} +spawn ../utils/test_lus2lic_no_node should_work/SWITCH.lus ++ ./lus2lic should_work/SWITCH.lus -n SWITCH --gen-autotest -np +_SWITCH_env.lut generated. +_SWITCH_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/SWITCH.lus ++ ./lus2lic should_work/SWITCH.lus -n SWITCH -ec -o SWITCH.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:SWITCH.ec:SWITCH -rp env:lutin:_SWITCH_env.lut -rp oracle:v6:_SWITCH_oracle.lus:SWITCH_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/SWITCH.lus spawn ./lus2lic -o /tmp/cst.lic should_work/cst.lus PASS: ./lus2lic {-o /tmp/cst.lic should_work/cst.lus} spawn ./lus2lic -ec -o /tmp/cst.ec should_work/cst.lus PASS: ./lus2lic {-ec -o /tmp/cst.ec should_work/cst.lus} -spawn ./ec2c -o /tmp/cst.c /tmp/cst.ec -PASS: ./ec2c {-o /tmp/cst.c /tmp/cst.ec} +spawn ./myec2c -o /tmp/cst.c /tmp/cst.ec +PASS: ./myec2c {-o /tmp/cst.c /tmp/cst.ec} +spawn ../utils/test_lus2lic_no_node should_work/cst.lus ++ ./lus2lic should_work/cst.lus -n cst --gen-autotest -np +_cst_env.lut generated. +_cst_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/cst.lus ++ ./lus2lic should_work/cst.lus -n cst -ec -o cst.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:cst.ec:cst -rp env:lutin:_cst_env.lut -rp oracle:v6:_cst_oracle.lus:cst_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/cst.lus spawn ./lus2lic -o /tmp/minmax5_random.lic should_work/minmax5_random.lus PASS: ./lus2lic {-o /tmp/minmax5_random.lic should_work/minmax5_random.lus} spawn ./lus2lic -ec -o /tmp/minmax5_random.ec should_work/minmax5_random.lus PASS: ./lus2lic {-ec -o /tmp/minmax5_random.ec should_work/minmax5_random.lus} -spawn ./ec2c -o /tmp/minmax5_random.c /tmp/minmax5_random.ec -PASS: ./ec2c {-o /tmp/minmax5_random.c /tmp/minmax5_random.ec} +spawn ./myec2c -o /tmp/minmax5_random.c /tmp/minmax5_random.ec +PASS: ./myec2c {-o /tmp/minmax5_random.c /tmp/minmax5_random.ec} +spawn ../utils/test_lus2lic_no_node should_work/minmax5_random.lus ++ ./lus2lic should_work/minmax5_random.lus -n minmax5_random --gen-autotest -np +*** The soc of minmax5_random::minmax is not defined. FINISH ME! +Extern node not yet supported, sorry + +*** oops: lus2lic internal error + File "src/lic2soc.ml", line 897, column 14 +*** when compiling lustre program should_work/minmax5_random.lus + +*** You migth want to sent a bug report to jahier@imag.fr ++ echo Error +Error ++ exit 2 +FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/minmax5_random.lus spawn ./lus2lic -o /tmp/matrice2.lic should_work/matrice2.lus PASS: ./lus2lic {-o /tmp/matrice2.lic should_work/matrice2.lus} spawn ./lus2lic -ec -o /tmp/matrice2.ec should_work/matrice2.lus PASS: ./lus2lic {-ec -o /tmp/matrice2.ec should_work/matrice2.lus} -spawn ./ec2c -o /tmp/matrice2.c /tmp/matrice2.ec -PASS: ./ec2c {-o /tmp/matrice2.c /tmp/matrice2.ec} +spawn ./myec2c -o /tmp/matrice2.c /tmp/matrice2.ec +PASS: ./myec2c {-o /tmp/matrice2.c /tmp/matrice2.ec} +spawn ../utils/test_lus2lic_no_node should_work/matrice2.lus ++ ./lus2lic should_work/matrice2.lus -n matrice2 --gen-autotest -np +_matrice2_env.lut generated. +_matrice2_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/matrice2.lus ++ ./lus2lic should_work/matrice2.lus -n matrice2 -ec -o matrice2.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:matrice2.ec:matrice2 -rp env:lutin:_matrice2_env.lut -rp oracle:v6:_matrice2_oracle.lus:matrice2_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/matrice2.lus spawn ./lus2lic -o /tmp/v1.lic should_work/v1.lus PASS: ./lus2lic {-o /tmp/v1.lic should_work/v1.lus} spawn ./lus2lic -ec -o /tmp/v1.ec should_work/v1.lus PASS: ./lus2lic {-ec -o /tmp/v1.ec should_work/v1.lus} -spawn ./ec2c -o /tmp/v1.c /tmp/v1.ec -PASS: ./ec2c {-o /tmp/v1.c /tmp/v1.ec} +spawn ./myec2c -o /tmp/v1.c /tmp/v1.ec +PASS: ./myec2c {-o /tmp/v1.c /tmp/v1.ec} +spawn ../utils/test_lus2lic_no_node should_work/v1.lus ++ ./lus2lic should_work/v1.lus -n v1 --gen-autotest -np +_v1_env.lut generated. +_v1_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/v1.lus ++ ./lus2lic should_work/v1.lus -n v1 -ec -o v1.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:v1.ec:v1 -rp env:lutin:_v1_env.lut -rp oracle:v6:_v1_oracle.lus:v1_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/v1.lus spawn ./lus2lic -o /tmp/ply02.lic should_work/ply02.lus PASS: ./lus2lic {-o /tmp/ply02.lic should_work/ply02.lus} spawn ./lus2lic -ec -o /tmp/ply02.ec should_work/ply02.lus PASS: ./lus2lic {-ec -o /tmp/ply02.ec should_work/ply02.lus} -spawn ./ec2c -o /tmp/ply02.c /tmp/ply02.ec -PASS: ./ec2c {-o /tmp/ply02.c /tmp/ply02.ec} +spawn ./myec2c -o /tmp/ply02.c /tmp/ply02.ec +PASS: ./myec2c {-o /tmp/ply02.c /tmp/ply02.ec} +spawn ../utils/test_lus2lic_no_node should_work/ply02.lus ++ ./lus2lic should_work/ply02.lus -n ply02 --gen-autotest -np +_ply02_env.lut generated. +_ply02_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/ply02.lus ++ ./lus2lic should_work/ply02.lus -n ply02 -ec -o ply02.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:ply02.ec:ply02 -rp env:lutin:_ply02_env.lut -rp oracle:v6:_ply02_oracle.lus:ply02_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/ply02.lus spawn ./lus2lic -o /tmp/call04.lic should_work/call04.lus PASS: ./lus2lic {-o /tmp/call04.lic should_work/call04.lus} spawn ./lus2lic -ec -o /tmp/call04.ec should_work/call04.lus PASS: ./lus2lic {-ec -o /tmp/call04.ec should_work/call04.lus} -spawn ./ec2c -o /tmp/call04.c /tmp/call04.ec -PASS: ./ec2c {-o /tmp/call04.c /tmp/call04.ec} +spawn ./myec2c -o /tmp/call04.c /tmp/call04.ec +PASS: ./myec2c {-o /tmp/call04.c /tmp/call04.ec} +spawn ../utils/test_lus2lic_no_node should_work/call04.lus ++ ./lus2lic should_work/call04.lus -n call04 --gen-autotest -np +_call04_env.lut generated. +_call04_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/call04.lus ++ ./lus2lic should_work/call04.lus -n call04 -ec -o call04.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:call04.ec:call04 -rp env:lutin:_call04_env.lut -rp oracle:v6:_call04_oracle.lus:call04_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/call04.lus spawn ./lus2lic -o /tmp/bascule.lic should_work/bascule.lus PASS: ./lus2lic {-o /tmp/bascule.lic should_work/bascule.lus} spawn ./lus2lic -ec -o /tmp/bascule.ec should_work/bascule.lus PASS: ./lus2lic {-ec -o /tmp/bascule.ec should_work/bascule.lus} -spawn ./ec2c -o /tmp/bascule.c /tmp/bascule.ec -PASS: ./ec2c {-o /tmp/bascule.c /tmp/bascule.ec} +spawn ./myec2c -o /tmp/bascule.c /tmp/bascule.ec +PASS: ./myec2c {-o /tmp/bascule.c /tmp/bascule.ec} +spawn ../utils/test_lus2lic_no_node should_work/bascule.lus ++ ./lus2lic should_work/bascule.lus -n bascule --gen-autotest -np +_bascule_env.lut generated. +_bascule_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/bascule.lus ++ ./lus2lic should_work/bascule.lus -n bascule -ec -o bascule.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:bascule.ec:bascule -rp env:lutin:_bascule_env.lut -rp oracle:v6:_bascule_oracle.lus:bascule_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/bascule.lus +spawn ./lus2lic -o /tmp/double_delay.lic should_work/double_delay.lus +PASS: ./lus2lic {-o /tmp/double_delay.lic should_work/double_delay.lus} +spawn ./lus2lic -ec -o /tmp/double_delay.ec should_work/double_delay.lus +PASS: ./lus2lic {-ec -o /tmp/double_delay.ec should_work/double_delay.lus} +spawn ./myec2c -o /tmp/double_delay.c /tmp/double_delay.ec +PASS: ./myec2c {-o /tmp/double_delay.c /tmp/double_delay.ec} +spawn ../utils/test_lus2lic_no_node should_work/double_delay.lus ++ ./lus2lic should_work/double_delay.lus -n double_delay --gen-autotest -np +_double_delay_env.lut generated. +_double_delay_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/double_delay.lus ++ ./lus2lic should_work/double_delay.lus -n double_delay -ec -o double_delay.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:double_delay.ec:double_delay -rp env:lutin:_double_delay_env.lut -rp oracle:v6:_double_delay_oracle.lus:double_delay_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/double_delay.lus +spawn ./lus2lic -o /tmp/modes3x2-v2.lic should_work/modes3x2-v2.lus +PASS: ./lus2lic {-o /tmp/modes3x2-v2.lic should_work/modes3x2-v2.lus} +spawn ./lus2lic -ec -o /tmp/modes3x2-v2.ec should_work/modes3x2-v2.lus +PASS: ./lus2lic {-ec -o /tmp/modes3x2-v2.ec should_work/modes3x2-v2.lus} +spawn ./myec2c -o /tmp/modes3x2-v2.c /tmp/modes3x2-v2.ec +PASS: ./myec2c {-o /tmp/modes3x2-v2.c /tmp/modes3x2-v2.ec} +spawn ../utils/test_lus2lic_no_node should_work/modes3x2-v2.lus ++ ./lus2lic should_work/modes3x2-v2.lus -n modes3x2-v2 --gen-autotest -np +Error. Can not find node modes3x2-v2 in dummy ++ echo Error +Error ++ exit 2 +FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/modes3x2-v2.lus spawn ./lus2lic -o /tmp/struct_with.lic should_work/struct_with.lus PASS: ./lus2lic {-o /tmp/struct_with.lic should_work/struct_with.lus} spawn ./lus2lic -ec -o /tmp/struct_with.ec should_work/struct_with.lus PASS: ./lus2lic {-ec -o /tmp/struct_with.ec should_work/struct_with.lus} -spawn ./ec2c -o /tmp/struct_with.c /tmp/struct_with.ec -PASS: ./ec2c {-o /tmp/struct_with.c /tmp/struct_with.ec} +spawn ./myec2c -o /tmp/struct_with.c /tmp/struct_with.ec +PASS: ./myec2c {-o /tmp/struct_with.c /tmp/struct_with.ec} +spawn ../utils/test_lus2lic_no_node should_work/struct_with.lus ++ ./lus2lic should_work/struct_with.lus -n struct_with --gen-autotest -np +_struct_with_env.lut generated. +_struct_with_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/struct_with.lus ++ ./lus2lic should_work/struct_with.lus -n struct_with -ec -o struct_with.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:struct_with.ec:struct_with -rp env:lutin:_struct_with_env.lut -rp oracle:v6:_struct_with_oracle.lus:struct_with_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/struct_with.lus spawn ./lus2lic -o /tmp/test_node_expand.lic should_work/test_node_expand.lus PASS: ./lus2lic {-o /tmp/test_node_expand.lic should_work/test_node_expand.lus} spawn ./lus2lic -ec -o /tmp/test_node_expand.ec should_work/test_node_expand.lus PASS: ./lus2lic {-ec -o /tmp/test_node_expand.ec should_work/test_node_expand.lus} -spawn ./ec2c -o /tmp/test_node_expand.c /tmp/test_node_expand.ec -PASS: ./ec2c {-o /tmp/test_node_expand.c /tmp/test_node_expand.ec} +spawn ./myec2c -o /tmp/test_node_expand.c /tmp/test_node_expand.ec +PASS: ./myec2c {-o /tmp/test_node_expand.c /tmp/test_node_expand.ec} +spawn ../utils/test_lus2lic_no_node should_work/test_node_expand.lus ++ ./lus2lic should_work/test_node_expand.lus -n test_node_expand --gen-autotest -np +_test_node_expand_env.lut generated. +_test_node_expand_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/test_node_expand.lus ++ ./lus2lic should_work/test_node_expand.lus -n test_node_expand -ec -o test_node_expand.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:test_node_expand.ec:test_node_expand -rp env:lutin:_test_node_expand_env.lut -rp oracle:v6:_test_node_expand_oracle.lus:test_node_expand_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +Failure occured in lurette: int_of_string +Lurette launched a process that failed (exit 2). + +break signal catched + +lurettetop: bye! ++ echo error +error ++ exit 2 +FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/test_node_expand.lus spawn ./lus2lic -o /tmp/mm22.lic should_work/mm22.lus PASS: ./lus2lic {-o /tmp/mm22.lic should_work/mm22.lus} spawn ./lus2lic -ec -o /tmp/mm22.ec should_work/mm22.lus PASS: ./lus2lic {-ec -o /tmp/mm22.ec should_work/mm22.lus} -spawn ./ec2c -o /tmp/mm22.c /tmp/mm22.ec -PASS: ./ec2c {-o /tmp/mm22.c /tmp/mm22.ec} -spawn ./lus2lic -o /tmp/X1.lic should_work/X1.lus -PASS: ./lus2lic {-o /tmp/X1.lic should_work/X1.lus} -spawn ./lus2lic -ec -o /tmp/X1.ec should_work/X1.lus -PASS: ./lus2lic {-ec -o /tmp/X1.ec should_work/X1.lus} -spawn ./ec2c -o /tmp/X1.c /tmp/X1.ec -PASS: ./ec2c {-o /tmp/X1.c /tmp/X1.ec} +spawn ./myec2c -o /tmp/mm22.c /tmp/mm22.ec +PASS: ./myec2c {-o /tmp/mm22.c /tmp/mm22.ec} +spawn ../utils/test_lus2lic_no_node should_work/mm22.lus ++ ./lus2lic should_work/mm22.lus -n mm22 --gen-autotest -np +_mm22_env.lut generated. +_mm22_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/mm22.lus ++ ./lus2lic should_work/mm22.lus -n mm22 -ec -o mm22.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:mm22.ec:mm22 -rp env:lutin:_mm22_env.lut -rp oracle:v6:_mm22_oracle.lus:mm22_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/mm22.lus spawn ./lus2lic -o /tmp/is_stable.lic should_work/is_stable.lus PASS: ./lus2lic {-o /tmp/is_stable.lic should_work/is_stable.lus} spawn ./lus2lic -ec -o /tmp/is_stable.ec should_work/is_stable.lus PASS: ./lus2lic {-ec -o /tmp/is_stable.ec should_work/is_stable.lus} -spawn ./ec2c -o /tmp/is_stable.c /tmp/is_stable.ec -PASS: ./ec2c {-o /tmp/is_stable.c /tmp/is_stable.ec} +spawn ./myec2c -o /tmp/is_stable.c /tmp/is_stable.ec +PASS: ./myec2c {-o /tmp/is_stable.c /tmp/is_stable.ec} +spawn ../utils/test_lus2lic_no_node should_work/is_stable.lus ++ ./lus2lic should_work/is_stable.lus -n is_stable --gen-autotest -np +_is_stable_env.lut generated. +_is_stable_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/is_stable.lus ++ ./lus2lic should_work/is_stable.lus -n is_stable -ec -o is_stable.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:is_stable.ec:is_stable -rp env:lutin:_is_stable_env.lut -rp oracle:v6:_is_stable_oracle.lus:is_stable_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/is_stable.lus spawn ./lus2lic -o /tmp/test_clash.lic should_work/test_clash.lus PASS: ./lus2lic {-o /tmp/test_clash.lic should_work/test_clash.lus} spawn ./lus2lic -ec -o /tmp/test_clash.ec should_work/test_clash.lus PASS: ./lus2lic {-ec -o /tmp/test_clash.ec should_work/test_clash.lus} -spawn ./ec2c -o /tmp/test_clash.c /tmp/test_clash.ec -PASS: ./ec2c {-o /tmp/test_clash.c /tmp/test_clash.ec} +spawn ./myec2c -o /tmp/test_clash.c /tmp/test_clash.ec +PASS: ./myec2c {-o /tmp/test_clash.c /tmp/test_clash.ec} +spawn ../utils/test_lus2lic_no_node should_work/test_clash.lus ++ ./lus2lic should_work/test_clash.lus -n test_clash --gen-autotest -np +*** Can not find package 'test_clash' in the following packages: +*** 'test' ++ echo Error +Error ++ exit 2 +FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/test_clash.lus spawn ./lus2lic -o /tmp/model2.lic should_work/model2.lus PASS: ./lus2lic {-o /tmp/model2.lic should_work/model2.lus} spawn ./lus2lic -ec -o /tmp/model2.ec should_work/model2.lus PASS: ./lus2lic {-ec -o /tmp/model2.ec should_work/model2.lus} -spawn ./ec2c -o /tmp/model2.c /tmp/model2.ec -PASS: ./ec2c {-o /tmp/model2.c /tmp/model2.ec} -spawn ./lus2lic -o /tmp/alarme.lic should_work/alarme.lus -PASS: ./lus2lic {-o /tmp/alarme.lic should_work/alarme.lus} -spawn ./lus2lic -ec -o /tmp/alarme.ec should_work/alarme.lus -PASS: ./lus2lic {-ec -o /tmp/alarme.ec should_work/alarme.lus} -spawn ./ec2c -o /tmp/alarme.c /tmp/alarme.ec -PASS: ./ec2c {-o /tmp/alarme.c /tmp/alarme.ec} +spawn ./myec2c -o /tmp/model2.c /tmp/model2.ec +PASS: ./myec2c {-o /tmp/model2.c /tmp/model2.ec} +spawn ../utils/test_lus2lic_no_node should_work/model2.lus ++ ./lus2lic should_work/model2.lus -n model2 --gen-autotest -np +*** Can not find package 'model2' in the following packages: +*** 'p' +*** 'u' +*** 'p2' ++ echo Error +Error ++ exit 2 +FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/model2.lus spawn ./lus2lic -o /tmp/onlyroll2.lic should_work/onlyroll2.lus PASS: ./lus2lic {-o /tmp/onlyroll2.lic should_work/onlyroll2.lus} spawn ./lus2lic -ec -o /tmp/onlyroll2.ec should_work/onlyroll2.lus PASS: ./lus2lic {-ec -o /tmp/onlyroll2.ec should_work/onlyroll2.lus} -spawn ./ec2c -o /tmp/onlyroll2.c /tmp/onlyroll2.ec -PASS: ./ec2c {-o /tmp/onlyroll2.c /tmp/onlyroll2.ec} +spawn ./myec2c -o /tmp/onlyroll2.c /tmp/onlyroll2.ec +PASS: ./myec2c {-o /tmp/onlyroll2.c /tmp/onlyroll2.ec} +spawn ../utils/test_lus2lic_no_node should_work/onlyroll2.lus ++ ./lus2lic should_work/onlyroll2.lus -n onlyroll2 --gen-autotest -np +_onlyroll2_env.lut generated. +_onlyroll2_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/onlyroll2.lus ++ ./lus2lic should_work/onlyroll2.lus -n onlyroll2 -ec -o onlyroll2.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:onlyroll2.ec:onlyroll2 -rp env:lutin:_onlyroll2_env.lut -rp oracle:v6:_onlyroll2_oracle.lus:onlyroll2_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/onlyroll2.lus spawn ./lus2lic -o /tmp/X6.lic should_work/X6.lus PASS: ./lus2lic {-o /tmp/X6.lic should_work/X6.lus} spawn ./lus2lic -ec -o /tmp/X6.ec should_work/X6.lus PASS: ./lus2lic {-ec -o /tmp/X6.ec should_work/X6.lus} -spawn ./ec2c -o /tmp/X6.c /tmp/X6.ec -PASS: ./ec2c {-o /tmp/X6.c /tmp/X6.ec} +spawn ./myec2c -o /tmp/X6.c /tmp/X6.ec +PASS: ./myec2c {-o /tmp/X6.c /tmp/X6.ec} +spawn ../utils/test_lus2lic_no_node should_work/X6.lus ++ ./lus2lic should_work/X6.lus -n X6 --gen-autotest -np +_X6_env.lut generated. +_X6_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/X6.lus ++ ./lus2lic should_work/X6.lus -n X6 -ec -o X6.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:X6.ec:X6 -rp env:lutin:_X6_env.lut -rp oracle:v6:_X6_oracle.lus:X6_oracle -go -l 10 -ns2c --stop-on-oracle-error +Error in lurette: Lv6errors.Compile_error(_, "\n*** clock error: The two following clocks are not compatible:\n***\t on base\n***\t on b on base\n") +Lurette launched a process that failed (exit 2). + +break signal catched + +lurettetop: bye! ++ echo error +error ++ exit 2 +FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/X6.lus spawn ./lus2lic -o /tmp/zzz2.lic should_work/zzz2.lus PASS: ./lus2lic {-o /tmp/zzz2.lic should_work/zzz2.lus} spawn ./lus2lic -ec -o /tmp/zzz2.ec should_work/zzz2.lus PASS: ./lus2lic {-ec -o /tmp/zzz2.ec should_work/zzz2.lus} -spawn ./ec2c -o /tmp/zzz2.c /tmp/zzz2.ec -PASS: ./ec2c {-o /tmp/zzz2.c /tmp/zzz2.ec} +spawn ./myec2c -o /tmp/zzz2.c /tmp/zzz2.ec +PASS: ./myec2c {-o /tmp/zzz2.c /tmp/zzz2.ec} +spawn ../utils/test_lus2lic_no_node should_work/zzz2.lus ++ ./lus2lic should_work/zzz2.lus -n zzz2 --gen-autotest -np +_zzz2_env.lut generated. +_zzz2_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/zzz2.lus ++ ./lus2lic should_work/zzz2.lus -n zzz2 -ec -o zzz2.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:zzz2.ec:zzz2 -rp env:lutin:_zzz2_env.lut -rp oracle:v6:_zzz2_oracle.lus:zzz2_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/zzz2.lus spawn ./lus2lic -o /tmp/polymorphic_pack.lic should_work/polymorphic_pack.lus PASS: ./lus2lic {-o /tmp/polymorphic_pack.lic should_work/polymorphic_pack.lus} spawn ./lus2lic -ec -o /tmp/polymorphic_pack.ec should_work/polymorphic_pack.lus PASS: ./lus2lic {-ec -o /tmp/polymorphic_pack.ec should_work/polymorphic_pack.lus} -spawn ./ec2c -o /tmp/polymorphic_pack.c /tmp/polymorphic_pack.ec -PASS: ./ec2c {-o /tmp/polymorphic_pack.c /tmp/polymorphic_pack.ec} +spawn ./myec2c -o /tmp/polymorphic_pack.c /tmp/polymorphic_pack.ec +PASS: ./myec2c {-o /tmp/polymorphic_pack.c /tmp/polymorphic_pack.ec} +spawn ../utils/test_lus2lic_no_node should_work/polymorphic_pack.lus ++ ./lus2lic should_work/polymorphic_pack.lus -n polymorphic_pack --gen-autotest -np +*** Can not find package 'polymorphic_pack' in the following packages: +*** 'p' ++ echo Error +Error ++ exit 2 +FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/polymorphic_pack.lus spawn ./lus2lic -o /tmp/COUNTER.lic should_work/COUNTER.lus PASS: ./lus2lic {-o /tmp/COUNTER.lic should_work/COUNTER.lus} spawn ./lus2lic -ec -o /tmp/COUNTER.ec should_work/COUNTER.lus PASS: ./lus2lic {-ec -o /tmp/COUNTER.ec should_work/COUNTER.lus} -spawn ./ec2c -o /tmp/COUNTER.c /tmp/COUNTER.ec -PASS: ./ec2c {-o /tmp/COUNTER.c /tmp/COUNTER.ec} +spawn ./myec2c -o /tmp/COUNTER.c /tmp/COUNTER.ec +PASS: ./myec2c {-o /tmp/COUNTER.c /tmp/COUNTER.ec} +spawn ../utils/test_lus2lic_no_node should_work/COUNTER.lus ++ ./lus2lic should_work/COUNTER.lus -n COUNTER --gen-autotest -np +_COUNTER_env.lut generated. +_COUNTER_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/COUNTER.lus ++ ./lus2lic should_work/COUNTER.lus -n COUNTER -ec -o COUNTER.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:COUNTER.ec:COUNTER -rp env:lutin:_COUNTER_env.lut -rp oracle:v6:_COUNTER_oracle.lus:COUNTER_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/COUNTER.lus spawn ./lus2lic -o /tmp/minmax3.lic should_work/minmax3.lus PASS: ./lus2lic {-o /tmp/minmax3.lic should_work/minmax3.lus} spawn ./lus2lic -ec -o /tmp/minmax3.ec should_work/minmax3.lus PASS: ./lus2lic {-ec -o /tmp/minmax3.ec should_work/minmax3.lus} -spawn ./ec2c -o /tmp/minmax3.c /tmp/minmax3.ec -PASS: ./ec2c {-o /tmp/minmax3.c /tmp/minmax3.ec} -spawn ./lus2lic -o /tmp/X3.lic should_work/X3.lus -PASS: ./lus2lic {-o /tmp/X3.lic should_work/X3.lus} -spawn ./lus2lic -ec -o /tmp/X3.ec should_work/X3.lus -PASS: ./lus2lic {-ec -o /tmp/X3.ec should_work/X3.lus} -spawn ./ec2c -o /tmp/X3.c /tmp/X3.ec -PASS: ./ec2c {-o /tmp/X3.c /tmp/X3.ec} +spawn ./myec2c -o /tmp/minmax3.c /tmp/minmax3.ec +PASS: ./myec2c {-o /tmp/minmax3.c /tmp/minmax3.ec} +spawn ../utils/test_lus2lic_no_node should_work/minmax3.lus ++ ./lus2lic should_work/minmax3.lus -n minmax3 --gen-autotest -np +_minmax3_env.lut generated. +_minmax3_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/minmax3.lus ++ ./lus2lic should_work/minmax3.lus -n minmax3 -ec -o minmax3.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:minmax3.ec:minmax3 -rp env:lutin:_minmax3_env.lut -rp oracle:v6:_minmax3_oracle.lus:minmax3_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/minmax3.lus spawn ./lus2lic -o /tmp/filter.lic should_work/filter.lus PASS: ./lus2lic {-o /tmp/filter.lic should_work/filter.lus} spawn ./lus2lic -ec -o /tmp/filter.ec should_work/filter.lus PASS: ./lus2lic {-ec -o /tmp/filter.ec should_work/filter.lus} -spawn ./ec2c -o /tmp/filter.c /tmp/filter.ec -PASS: ./ec2c {-o /tmp/filter.c /tmp/filter.ec} +spawn ./myec2c -o /tmp/filter.c /tmp/filter.ec +PASS: ./myec2c {-o /tmp/filter.c /tmp/filter.ec} +spawn ../utils/test_lus2lic_no_node should_work/filter.lus ++ ./lus2lic should_work/filter.lus -n filter --gen-autotest -np +Error. A combinational cycle been detected in file "/home/jahier/lus2lic/test/should_work/filter.lus", line 5, col 5 to 10, token 'filter' on + v00 = (z.x) + v03 = (z.y) + v00 = (z.x) + v04 = (v03.y) + z.x.y = (v00.x) + ok = Lustre::lt(v04, v06) + +Hint: try to use --expand-nodes. + ++ echo Error +Error ++ exit 2 +FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/filter.lus spawn ./lus2lic -o /tmp/ec.lic should_work/ec.lus PASS: ./lus2lic {-o /tmp/ec.lic should_work/ec.lus} spawn ./lus2lic -ec -o /tmp/ec.ec should_work/ec.lus PASS: ./lus2lic {-ec -o /tmp/ec.ec should_work/ec.lus} -spawn ./ec2c -o /tmp/ec.c /tmp/ec.ec -PASS: ./ec2c {-o /tmp/ec.c /tmp/ec.ec} +spawn ./myec2c -o /tmp/ec.c /tmp/ec.ec +PASS: ./myec2c {-o /tmp/ec.c /tmp/ec.ec} +spawn ../utils/test_lus2lic_no_node should_work/ec.lus ++ ./lus2lic should_work/ec.lus -n ec --gen-autotest -np +_ec_env.lut generated. +_ec_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/ec.lus ++ ./lus2lic should_work/ec.lus -n ec -ec -o ec.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:ec.ec:ec -rp env:lutin:_ec_env.lut -rp oracle:v6:_ec_oracle.lus:ec_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/ec.lus spawn ./lus2lic -o /tmp/morel3.lic should_work/morel3.lus PASS: ./lus2lic {-o /tmp/morel3.lic should_work/morel3.lus} spawn ./lus2lic -ec -o /tmp/morel3.ec should_work/morel3.lus PASS: ./lus2lic {-ec -o /tmp/morel3.ec should_work/morel3.lus} -spawn ./ec2c -o /tmp/morel3.c /tmp/morel3.ec -PASS: ./ec2c {-o /tmp/morel3.c /tmp/morel3.ec} +spawn ./myec2c -o /tmp/morel3.c /tmp/morel3.ec +PASS: ./myec2c {-o /tmp/morel3.c /tmp/morel3.ec} +spawn ../utils/test_lus2lic_no_node should_work/morel3.lus ++ ./lus2lic should_work/morel3.lus -n morel3 --gen-autotest -np +_morel3_env.lut generated. +_morel3_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/morel3.lus ++ ./lus2lic should_work/morel3.lus -n morel3 -ec -o morel3.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:morel3.ec:morel3 -rp env:lutin:_morel3_env.lut -rp oracle:v6:_morel3_oracle.lus:morel3_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/morel3.lus spawn ./lus2lic -o /tmp/fresh_name.lic should_work/fresh_name.lus PASS: ./lus2lic {-o /tmp/fresh_name.lic should_work/fresh_name.lus} spawn ./lus2lic -ec -o /tmp/fresh_name.ec should_work/fresh_name.lus PASS: ./lus2lic {-ec -o /tmp/fresh_name.ec should_work/fresh_name.lus} -spawn ./ec2c -o /tmp/fresh_name.c /tmp/fresh_name.ec -PASS: ./ec2c {-o /tmp/fresh_name.c /tmp/fresh_name.ec} +spawn ./myec2c -o /tmp/fresh_name.c /tmp/fresh_name.ec +PASS: ./myec2c {-o /tmp/fresh_name.c /tmp/fresh_name.ec} +spawn ../utils/test_lus2lic_no_node should_work/fresh_name.lus ++ ./lus2lic should_work/fresh_name.lus -n fresh_name --gen-autotest -np +_fresh_name_env.lut generated. +_fresh_name_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/fresh_name.lus ++ ./lus2lic should_work/fresh_name.lus -n fresh_name -ec -o fresh_name.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:fresh_name.ec:fresh_name -rp env:lutin:_fresh_name_env.lut -rp oracle:v6:_fresh_name_oracle.lus:fresh_name_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/fresh_name.lus spawn ./lus2lic -o /tmp/ply03.lic should_work/ply03.lus PASS: ./lus2lic {-o /tmp/ply03.lic should_work/ply03.lus} spawn ./lus2lic -ec -o /tmp/ply03.ec should_work/ply03.lus PASS: ./lus2lic {-ec -o /tmp/ply03.ec should_work/ply03.lus} -spawn ./ec2c -o /tmp/ply03.c /tmp/ply03.ec -PASS: ./ec2c {-o /tmp/ply03.c /tmp/ply03.ec} +spawn ./myec2c -o /tmp/ply03.c /tmp/ply03.ec +PASS: ./myec2c {-o /tmp/ply03.c /tmp/ply03.ec} +spawn ../utils/test_lus2lic_no_node should_work/ply03.lus ++ ./lus2lic should_work/ply03.lus -n ply03 --gen-autotest -np +_ply03_env.lut generated. +_ply03_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/ply03.lus ++ ./lus2lic should_work/ply03.lus -n ply03 -ec -o ply03.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:ply03.ec:ply03 -rp env:lutin:_ply03_env.lut -rp oracle:v6:_ply03_oracle.lus:ply03_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/ply03.lus spawn ./lus2lic -o /tmp/param_struct.lic should_work/param_struct.lus PASS: ./lus2lic {-o /tmp/param_struct.lic should_work/param_struct.lus} spawn ./lus2lic -ec -o /tmp/param_struct.ec should_work/param_struct.lus PASS: ./lus2lic {-ec -o /tmp/param_struct.ec should_work/param_struct.lus} -spawn ./ec2c -o /tmp/param_struct.c /tmp/param_struct.ec -PASS: ./ec2c {-o /tmp/param_struct.c /tmp/param_struct.ec} +spawn ./myec2c -o /tmp/param_struct.c /tmp/param_struct.ec +PASS: ./myec2c {-o /tmp/param_struct.c /tmp/param_struct.ec} +spawn ../utils/test_lus2lic_no_node should_work/param_struct.lus ++ ./lus2lic should_work/param_struct.lus -n param_struct --gen-autotest -np +_param_struct_env.lut generated. +_param_struct_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/param_struct.lus ++ ./lus2lic should_work/param_struct.lus -n param_struct -ec -o param_struct.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:param_struct.ec:param_struct -rp env:lutin:_param_struct_env.lut -rp oracle:v6:_param_struct_oracle.lus:param_struct_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/param_struct.lus spawn ./lus2lic -o /tmp/minmax2.lic should_work/minmax2.lus PASS: ./lus2lic {-o /tmp/minmax2.lic should_work/minmax2.lus} spawn ./lus2lic -ec -o /tmp/minmax2.ec should_work/minmax2.lus PASS: ./lus2lic {-ec -o /tmp/minmax2.ec should_work/minmax2.lus} -spawn ./ec2c -o /tmp/minmax2.c /tmp/minmax2.ec -PASS: ./ec2c {-o /tmp/minmax2.c /tmp/minmax2.ec} +spawn ./myec2c -o /tmp/minmax2.c /tmp/minmax2.ec +PASS: ./myec2c {-o /tmp/minmax2.c /tmp/minmax2.ec} +spawn ../utils/test_lus2lic_no_node should_work/minmax2.lus ++ ./lus2lic should_work/minmax2.lus -n minmax2 --gen-autotest -np +_minmax2_env.lut generated. +_minmax2_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/minmax2.lus ++ ./lus2lic should_work/minmax2.lus -n minmax2 -ec -o minmax2.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:minmax2.ec:minmax2 -rp env:lutin:_minmax2_env.lut -rp oracle:v6:_minmax2_oracle.lus:minmax2_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/minmax2.lus spawn ./lus2lic -o /tmp/plus.lic should_work/plus.lus PASS: ./lus2lic {-o /tmp/plus.lic should_work/plus.lus} spawn ./lus2lic -ec -o /tmp/plus.ec should_work/plus.lus PASS: ./lus2lic {-ec -o /tmp/plus.ec should_work/plus.lus} -spawn ./ec2c -o /tmp/plus.c /tmp/plus.ec -PASS: ./ec2c {-o /tmp/plus.c /tmp/plus.ec} +spawn ./myec2c -o /tmp/plus.c /tmp/plus.ec +PASS: ./myec2c {-o /tmp/plus.c /tmp/plus.ec} +spawn ../utils/test_lus2lic_no_node should_work/plus.lus ++ ./lus2lic should_work/plus.lus -n plus --gen-autotest -np +_plus_env.lut generated. +_plus_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/plus.lus ++ ./lus2lic should_work/plus.lus -n plus -ec -o plus.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:plus.ec:plus -rp env:lutin:_plus_env.lut -rp oracle:v6:_plus_oracle.lus:plus_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/plus.lus spawn ./lus2lic -o /tmp/xx.lic should_work/xx.lus PASS: ./lus2lic {-o /tmp/xx.lic should_work/xx.lus} spawn ./lus2lic -ec -o /tmp/xx.ec should_work/xx.lus PASS: ./lus2lic {-ec -o /tmp/xx.ec should_work/xx.lus} -spawn ./ec2c -o /tmp/xx.c /tmp/xx.ec -PASS: ./ec2c {-o /tmp/xx.c /tmp/xx.ec} +spawn ./myec2c -o /tmp/xx.c /tmp/xx.ec +PASS: ./myec2c {-o /tmp/xx.c /tmp/xx.ec} +spawn ../utils/test_lus2lic_no_node should_work/xx.lus ++ ./lus2lic should_work/xx.lus -n xx --gen-autotest -np +_xx_env.lut generated. +_xx_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/xx.lus ++ ./lus2lic should_work/xx.lus -n xx -ec -o xx.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:xx.ec:xx -rp env:lutin:_xx_env.lut -rp oracle:v6:_xx_oracle.lus:xx_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/xx.lus spawn ./lus2lic -o /tmp/call07.lic should_work/call07.lus PASS: ./lus2lic {-o /tmp/call07.lic should_work/call07.lus} spawn ./lus2lic -ec -o /tmp/call07.ec should_work/call07.lus PASS: ./lus2lic {-ec -o /tmp/call07.ec should_work/call07.lus} -spawn ./ec2c -o /tmp/call07.c /tmp/call07.ec -PASS: ./ec2c {-o /tmp/call07.c /tmp/call07.ec} +spawn ./myec2c -o /tmp/call07.c /tmp/call07.ec +PASS: ./myec2c {-o /tmp/call07.c /tmp/call07.ec} +spawn ../utils/test_lus2lic_no_node should_work/call07.lus ++ ./lus2lic should_work/call07.lus -n call07 --gen-autotest -np +_call07_env.lut generated. +_call07_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/call07.lus ++ ./lus2lic should_work/call07.lus -n call07 -ec -o call07.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:call07.ec:call07 -rp env:lutin:_call07_env.lut -rp oracle:v6:_call07_oracle.lus:call07_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/call07.lus spawn ./lus2lic -o /tmp/shift_ludic.lic should_work/shift_ludic.lus PASS: ./lus2lic {-o /tmp/shift_ludic.lic should_work/shift_ludic.lus} spawn ./lus2lic -ec -o /tmp/shift_ludic.ec should_work/shift_ludic.lus PASS: ./lus2lic {-ec -o /tmp/shift_ludic.ec should_work/shift_ludic.lus} -spawn ./ec2c -o /tmp/shift_ludic.c /tmp/shift_ludic.ec -PASS: ./ec2c {-o /tmp/shift_ludic.c /tmp/shift_ludic.ec} +spawn ./myec2c -o /tmp/shift_ludic.c /tmp/shift_ludic.ec +PASS: ./myec2c {-o /tmp/shift_ludic.c /tmp/shift_ludic.ec} +spawn ../utils/test_lus2lic_no_node should_work/shift_ludic.lus ++ ./lus2lic should_work/shift_ludic.lus -n shift_ludic --gen-autotest -np +_shift_ludic_env.lut generated. +_shift_ludic_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/shift_ludic.lus ++ ./lus2lic should_work/shift_ludic.lus -n shift_ludic -ec -o shift_ludic.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:shift_ludic.ec:shift_ludic -rp env:lutin:_shift_ludic_env.lut -rp oracle:v6:_shift_ludic_oracle.lus:shift_ludic_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/shift_ludic.lus spawn ./lus2lic -o /tmp/pilote-1.0.lic should_work/pilote-1.0.lus PASS: ./lus2lic {-o /tmp/pilote-1.0.lic should_work/pilote-1.0.lus} spawn ./lus2lic -ec -o /tmp/pilote-1.0.ec should_work/pilote-1.0.lus PASS: ./lus2lic {-ec -o /tmp/pilote-1.0.ec should_work/pilote-1.0.lus} -spawn ./ec2c -o /tmp/pilote-1.0.c /tmp/pilote-1.0.ec -PASS: ./ec2c {-o /tmp/pilote-1.0.c /tmp/pilote-1.0.ec} +spawn ./myec2c -o /tmp/pilote-1.0.c /tmp/pilote-1.0.ec +PASS: ./myec2c {-o /tmp/pilote-1.0.c /tmp/pilote-1.0.ec} +spawn ../utils/test_lus2lic_no_node should_work/pilote-1.0.lus ++ ./lus2lic should_work/pilote-1.0.lus -n pilote-1.0 --gen-autotest -np +*** Can not find package 'pilote-1.0' in the following packages: +*** 'util' +*** 'pilote' ++ echo Error +Error ++ exit 2 +FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/pilote-1.0.lus spawn ./lus2lic -o /tmp/trivial.lic should_work/trivial.lus PASS: ./lus2lic {-o /tmp/trivial.lic should_work/trivial.lus} spawn ./lus2lic -ec -o /tmp/trivial.ec should_work/trivial.lus PASS: ./lus2lic {-ec -o /tmp/trivial.ec should_work/trivial.lus} -spawn ./ec2c -o /tmp/trivial.c /tmp/trivial.ec -PASS: ./ec2c {-o /tmp/trivial.c /tmp/trivial.ec} +spawn ./myec2c -o /tmp/trivial.c /tmp/trivial.ec +PASS: ./myec2c {-o /tmp/trivial.c /tmp/trivial.ec} +spawn ../utils/test_lus2lic_no_node should_work/trivial.lus ++ ./lus2lic should_work/trivial.lus -n trivial --gen-autotest -np +_trivial_env.lut generated. +_trivial_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/trivial.lus ++ ./lus2lic should_work/trivial.lus -n trivial -ec -o trivial.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:trivial.ec:trivial -rp env:lutin:_trivial_env.lut -rp oracle:v6:_trivial_oracle.lus:trivial_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/trivial.lus spawn ./lus2lic -o /tmp/packs.lic should_work/packs.lus PASS: ./lus2lic {-o /tmp/packs.lic should_work/packs.lus} spawn ./lus2lic -ec -o /tmp/packs.ec should_work/packs.lus PASS: ./lus2lic {-ec -o /tmp/packs.ec should_work/packs.lus} -spawn ./ec2c -o /tmp/packs.c /tmp/packs.ec -PASS: ./ec2c {-o /tmp/packs.c /tmp/packs.ec} +spawn ./myec2c -o /tmp/packs.c /tmp/packs.ec +PASS: ./myec2c {-o /tmp/packs.c /tmp/packs.ec} +spawn ../utils/test_lus2lic_no_node should_work/packs.lus ++ ./lus2lic should_work/packs.lus -n packs --gen-autotest -np +*** Can not find package 'packs' in the following packages: +*** 'pbool' +*** 'mainPack' +*** 'pint' +*** 'inter' +*** 'preal' ++ echo Error +Error ++ exit 2 +FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/packs.lus spawn ./lus2lic -o /tmp/sincos.lic should_work/sincos.lus PASS: ./lus2lic {-o /tmp/sincos.lic should_work/sincos.lus} spawn ./lus2lic -ec -o /tmp/sincos.ec should_work/sincos.lus PASS: ./lus2lic {-ec -o /tmp/sincos.ec should_work/sincos.lus} -spawn ./ec2c -o /tmp/sincos.c /tmp/sincos.ec -PASS: ./ec2c {-o /tmp/sincos.c /tmp/sincos.ec} +spawn ./myec2c -o /tmp/sincos.c /tmp/sincos.ec +PASS: ./myec2c {-o /tmp/sincos.c /tmp/sincos.ec} +spawn ../utils/test_lus2lic_no_node should_work/sincos.lus ++ ./lus2lic should_work/sincos.lus -n sincos --gen-autotest -np +_sincos_env.lut generated. +_sincos_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/sincos.lus ++ ./lus2lic should_work/sincos.lus -n sincos -ec -o sincos.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:sincos.ec:sincos -rp env:lutin:_sincos_env.lut -rp oracle:v6:_sincos_oracle.lus:sincos_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +#ERROR: Output takes on nil +RifIO.Bye +Lurette launched a process that failed (exit 2). + +break signal catched + +lurettetop: bye! ++ echo error +error ++ exit 2 +FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/sincos.lus spawn ./lus2lic -o /tmp/newpacks.lic should_work/newpacks.lus PASS: ./lus2lic {-o /tmp/newpacks.lic should_work/newpacks.lus} spawn ./lus2lic -ec -o /tmp/newpacks.ec should_work/newpacks.lus PASS: ./lus2lic {-ec -o /tmp/newpacks.ec should_work/newpacks.lus} -spawn ./ec2c -o /tmp/newpacks.c /tmp/newpacks.ec -PASS: ./ec2c {-o /tmp/newpacks.c /tmp/newpacks.ec} +spawn ./myec2c -o /tmp/newpacks.c /tmp/newpacks.ec +PASS: ./myec2c {-o /tmp/newpacks.c /tmp/newpacks.ec} +spawn ../utils/test_lus2lic_no_node should_work/newpacks.lus ++ ./lus2lic should_work/newpacks.lus -n newpacks --gen-autotest -np +*** Can not find package 'newpacks' in the following packages: +*** 'pbool' +*** 'mainPack' +*** 'pint' +*** 'inter' +*** 'preal' ++ echo Error +Error ++ exit 2 +FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/newpacks.lus spawn ./lus2lic -o /tmp/morel5.lic should_work/morel5.lus PASS: ./lus2lic {-o /tmp/morel5.lic should_work/morel5.lus} spawn ./lus2lic -ec -o /tmp/morel5.ec should_work/morel5.lus PASS: ./lus2lic {-ec -o /tmp/morel5.ec should_work/morel5.lus} -spawn ./ec2c -o /tmp/morel5.c /tmp/morel5.ec -PASS: ./ec2c {-o /tmp/morel5.c /tmp/morel5.ec} +spawn ./myec2c -o /tmp/morel5.c /tmp/morel5.ec +PASS: ./myec2c {-o /tmp/morel5.c /tmp/morel5.ec} +spawn ../utils/test_lus2lic_no_node should_work/morel5.lus ++ ./lus2lic should_work/morel5.lus -n morel5 --gen-autotest -np +_morel5_env.lut generated. +_morel5_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/morel5.lus ++ ./lus2lic should_work/morel5.lus -n morel5 -ec -o morel5.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:morel5.ec:morel5 -rp env:lutin:_morel5_env.lut -rp oracle:v6:_morel5_oracle.lus:morel5_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/morel5.lus spawn ./lus2lic -o /tmp/bred.lic should_work/bred.lus PASS: ./lus2lic {-o /tmp/bred.lic should_work/bred.lus} spawn ./lus2lic -ec -o /tmp/bred.ec should_work/bred.lus PASS: ./lus2lic {-ec -o /tmp/bred.ec should_work/bred.lus} -spawn ./ec2c -o /tmp/bred.c /tmp/bred.ec -PASS: ./ec2c {-o /tmp/bred.c /tmp/bred.ec} +spawn ./myec2c -o /tmp/bred.c /tmp/bred.ec +PASS: ./myec2c {-o /tmp/bred.c /tmp/bred.ec} +spawn ../utils/test_lus2lic_no_node should_work/bred.lus ++ ./lus2lic should_work/bred.lus -n bred --gen-autotest -np +_bred_env.lut generated. +_bred_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/bred.lus ++ ./lus2lic should_work/bred.lus -n bred -ec -o bred.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:bred.ec:bred -rp env:lutin:_bred_env.lut -rp oracle:v6:_bred_oracle.lus:bred_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/bred.lus +spawn ./lus2lic -o /tmp/test_diese.lic should_work/test_diese.lus +PASS: ./lus2lic {-o /tmp/test_diese.lic should_work/test_diese.lus} +spawn ./lus2lic -ec -o /tmp/test_diese.ec should_work/test_diese.lus +PASS: ./lus2lic {-ec -o /tmp/test_diese.ec should_work/test_diese.lus} +spawn ./myec2c -o /tmp/test_diese.c /tmp/test_diese.ec +PASS: ./myec2c {-o /tmp/test_diese.c /tmp/test_diese.ec} +spawn ../utils/test_lus2lic_no_node should_work/test_diese.lus ++ ./lus2lic should_work/test_diese.lus -n test_diese --gen-autotest -np +_test_diese_env.lut generated. +_test_diese_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/test_diese.lus ++ ./lus2lic should_work/test_diese.lus -n test_diese -ec -o test_diese.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:test_diese.ec:test_diese -rp env:lutin:_test_diese_env.lut -rp oracle:v6:_test_diese_oracle.lus:test_diese_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/test_diese.lus spawn ./lus2lic -o /tmp/tri.lic should_work/tri.lus PASS: ./lus2lic {-o /tmp/tri.lic should_work/tri.lus} spawn ./lus2lic -ec -o /tmp/tri.ec should_work/tri.lus PASS: ./lus2lic {-ec -o /tmp/tri.ec should_work/tri.lus} -spawn ./ec2c -o /tmp/tri.c /tmp/tri.ec -PASS: ./ec2c {-o /tmp/tri.c /tmp/tri.ec} +spawn ./myec2c -o /tmp/tri.c /tmp/tri.ec +PASS: ./myec2c {-o /tmp/tri.c /tmp/tri.ec} +spawn ../utils/test_lus2lic_no_node should_work/tri.lus ++ ./lus2lic should_work/tri.lus -n tri --gen-autotest -np +_tri_env.lut generated. +_tri_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/tri.lus ++ ./lus2lic should_work/tri.lus -n tri -ec -o tri.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:tri.ec:tri -rp env:lutin:_tri_env.lut -rp oracle:v6:_tri_oracle.lus:tri_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/tri.lus spawn ./lus2lic -o /tmp/calculs_max.lic should_work/calculs_max.lus PASS: ./lus2lic {-o /tmp/calculs_max.lic should_work/calculs_max.lus} spawn ./lus2lic -ec -o /tmp/calculs_max.ec should_work/calculs_max.lus PASS: ./lus2lic {-ec -o /tmp/calculs_max.ec should_work/calculs_max.lus} -spawn ./ec2c -o /tmp/calculs_max.c /tmp/calculs_max.ec -PASS: ./ec2c {-o /tmp/calculs_max.c /tmp/calculs_max.ec} +spawn ./myec2c -o /tmp/calculs_max.c /tmp/calculs_max.ec +PASS: ./myec2c {-o /tmp/calculs_max.c /tmp/calculs_max.ec} +spawn ../utils/test_lus2lic_no_node should_work/calculs_max.lus ++ ./lus2lic should_work/calculs_max.lus -n calculs_max --gen-autotest -np +_calculs_max_env.lut generated. +_calculs_max_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/calculs_max.lus ++ ./lus2lic should_work/calculs_max.lus -n calculs_max -ec -o calculs_max.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:calculs_max.ec:calculs_max -rp env:lutin:_calculs_max_env.lut -rp oracle:v6:_calculs_max_oracle.lus:calculs_max_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/calculs_max.lus spawn ./lus2lic -o /tmp/testCA.lic should_work/testCA.lus PASS: ./lus2lic {-o /tmp/testCA.lic should_work/testCA.lus} spawn ./lus2lic -ec -o /tmp/testCA.ec should_work/testCA.lus PASS: ./lus2lic {-ec -o /tmp/testCA.ec should_work/testCA.lus} -spawn ./ec2c -o /tmp/testCA.c /tmp/testCA.ec -PASS: ./ec2c {-o /tmp/testCA.c /tmp/testCA.ec} +spawn ./myec2c -o /tmp/testCA.c /tmp/testCA.ec +PASS: ./myec2c {-o /tmp/testCA.c /tmp/testCA.ec} +spawn ../utils/test_lus2lic_no_node should_work/testCA.lus ++ ./lus2lic should_work/testCA.lus -n testCA --gen-autotest -np +_testCA_env.lut generated. +_testCA_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/testCA.lus ++ ./lus2lic should_work/testCA.lus -n testCA -ec -o testCA.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:testCA.ec:testCA -rp env:lutin:_testCA_env.lut -rp oracle:v6:_testCA_oracle.lus:testCA_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/testCA.lus spawn ./lus2lic -o /tmp/deconne.lic should_work/deconne.lus PASS: ./lus2lic {-o /tmp/deconne.lic should_work/deconne.lus} spawn ./lus2lic -ec -o /tmp/deconne.ec should_work/deconne.lus PASS: ./lus2lic {-ec -o /tmp/deconne.ec should_work/deconne.lus} -spawn ./ec2c -o /tmp/deconne.c /tmp/deconne.ec -PASS: ./ec2c {-o /tmp/deconne.c /tmp/deconne.ec} +spawn ./myec2c -o /tmp/deconne.c /tmp/deconne.ec +Segmentation fault +FAIL: Try ec2c on the result: ./myec2c {-o /tmp/deconne.c /tmp/deconne.ec} spawn ./lus2lic -o /tmp/noAlarm.lic should_work/noAlarm.lus PASS: ./lus2lic {-o /tmp/noAlarm.lic should_work/noAlarm.lus} spawn ./lus2lic -ec -o /tmp/noAlarm.ec should_work/noAlarm.lus PASS: ./lus2lic {-ec -o /tmp/noAlarm.ec should_work/noAlarm.lus} -spawn ./ec2c -o /tmp/noAlarm.c /tmp/noAlarm.ec -PASS: ./ec2c {-o /tmp/noAlarm.c /tmp/noAlarm.ec} +spawn ./myec2c -o /tmp/noAlarm.c /tmp/noAlarm.ec +PASS: ./myec2c {-o /tmp/noAlarm.c /tmp/noAlarm.ec} +spawn ../utils/test_lus2lic_no_node should_work/noAlarm.lus ++ ./lus2lic should_work/noAlarm.lus -n noAlarm --gen-autotest -np +_noAlarm_env.lut generated. +_noAlarm_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/noAlarm.lus ++ ./lus2lic should_work/noAlarm.lus -n noAlarm -ec -o noAlarm.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:noAlarm.ec:noAlarm -rp env:lutin:_noAlarm_env.lut -rp oracle:v6:_noAlarm_oracle.lus:noAlarm_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/noAlarm.lus spawn ./lus2lic -o /tmp/clock_ite.lic should_work/clock_ite.lus PASS: ./lus2lic {-o /tmp/clock_ite.lic should_work/clock_ite.lus} spawn ./lus2lic -ec -o /tmp/clock_ite.ec should_work/clock_ite.lus PASS: ./lus2lic {-ec -o /tmp/clock_ite.ec should_work/clock_ite.lus} -spawn ./ec2c -o /tmp/clock_ite.c /tmp/clock_ite.ec -PASS: ./ec2c {-o /tmp/clock_ite.c /tmp/clock_ite.ec} +spawn ./myec2c -o /tmp/clock_ite.c /tmp/clock_ite.ec +PASS: ./myec2c {-o /tmp/clock_ite.c /tmp/clock_ite.ec} +spawn ../utils/test_lus2lic_no_node should_work/clock_ite.lus ++ ./lus2lic should_work/clock_ite.lus -n clock_ite --gen-autotest -np +_clock_ite_env.lut generated. +_clock_ite_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/clock_ite.lus ++ ./lus2lic should_work/clock_ite.lus -n clock_ite -ec -o clock_ite.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:clock_ite.ec:clock_ite -rp env:lutin:_clock_ite_env.lut -rp oracle:v6:_clock_ite_oracle.lus:clock_ite_oracle -go -l 10 -ns2c --stop-on-oracle-error +Error in lurette: Lv6errors.Compile_error(_, "\n*** clock error: The two following clocks are not compatible:\n***\t on base\n***\t on a on base\n") +Lurette launched a process that failed (exit 2). + +break signal catched + +lurettetop: bye! ++ echo error +error ++ exit 2 +FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/clock_ite.lus spawn ./lus2lic -o /tmp/morel4.lic should_work/morel4.lus PASS: ./lus2lic {-o /tmp/morel4.lic should_work/morel4.lus} spawn ./lus2lic -ec -o /tmp/morel4.ec should_work/morel4.lus PASS: ./lus2lic {-ec -o /tmp/morel4.ec should_work/morel4.lus} -spawn ./ec2c -o /tmp/morel4.c /tmp/morel4.ec -PASS: ./ec2c {-o /tmp/morel4.c /tmp/morel4.ec} -spawn ./lus2lic -o /tmp/enum.lic should_work/enum.lus -PASS: ./lus2lic {-o /tmp/enum.lic should_work/enum.lus} -spawn ./lus2lic -ec -o /tmp/enum.ec should_work/enum.lus -PASS: ./lus2lic {-ec -o /tmp/enum.ec should_work/enum.lus} -spawn ./ec2c -o /tmp/enum.c /tmp/enum.ec -PASS: ./ec2c {-o /tmp/enum.c /tmp/enum.ec} +spawn ./myec2c -o /tmp/morel4.c /tmp/morel4.ec +PASS: ./myec2c {-o /tmp/morel4.c /tmp/morel4.ec} +spawn ../utils/test_lus2lic_no_node should_work/morel4.lus ++ ./lus2lic should_work/morel4.lus -n morel4 --gen-autotest -np +_morel4_env.lut generated. +_morel4_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/morel4.lus ++ ./lus2lic should_work/morel4.lus -n morel4 -ec -o morel4.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:morel4.ec:morel4 -rp env:lutin:_morel4_env.lut -rp oracle:v6:_morel4_oracle.lus:morel4_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/morel4.lus spawn ./lus2lic -o /tmp/param_node4.lic should_work/param_node4.lus PASS: ./lus2lic {-o /tmp/param_node4.lic should_work/param_node4.lus} spawn ./lus2lic -ec -o /tmp/param_node4.ec should_work/param_node4.lus PASS: ./lus2lic {-ec -o /tmp/param_node4.ec should_work/param_node4.lus} -spawn ./ec2c -o /tmp/param_node4.c /tmp/param_node4.ec -PASS: ./ec2c {-o /tmp/param_node4.c /tmp/param_node4.ec} +spawn ./myec2c -o /tmp/param_node4.c /tmp/param_node4.ec +PASS: ./myec2c {-o /tmp/param_node4.c /tmp/param_node4.ec} +spawn ../utils/test_lus2lic_no_node should_work/param_node4.lus ++ ./lus2lic should_work/param_node4.lus -n param_node4 --gen-autotest -np +_param_node4_env.lut generated. +_param_node4_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/param_node4.lus ++ ./lus2lic should_work/param_node4.lus -n param_node4 -ec -o param_node4.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:param_node4.ec:param_node4 -rp env:lutin:_param_node4_env.lut -rp oracle:v6:_param_node4_oracle.lus:param_node4_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/param_node4.lus spawn ./lus2lic -o /tmp/bad_call03.lic should_work/bad_call03.lus PASS: ./lus2lic {-o /tmp/bad_call03.lic should_work/bad_call03.lus} spawn ./lus2lic -ec -o /tmp/bad_call03.ec should_work/bad_call03.lus PASS: ./lus2lic {-ec -o /tmp/bad_call03.ec should_work/bad_call03.lus} -spawn ./ec2c -o /tmp/bad_call03.c /tmp/bad_call03.ec -PASS: ./ec2c {-o /tmp/bad_call03.c /tmp/bad_call03.ec} +spawn ./myec2c -o /tmp/bad_call03.c /tmp/bad_call03.ec +PASS: ./myec2c {-o /tmp/bad_call03.c /tmp/bad_call03.ec} +spawn ../utils/test_lus2lic_no_node should_work/bad_call03.lus ++ ./lus2lic should_work/bad_call03.lus -n bad_call03 --gen-autotest -np +_bad_call03_env.lut generated. +_bad_call03_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/bad_call03.lus ++ ./lus2lic should_work/bad_call03.lus -n bad_call03 -ec -o bad_call03.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:bad_call03.ec:bad_call03 -rp env:lutin:_bad_call03_env.lut -rp oracle:v6:_bad_call03_oracle.lus:bad_call03_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/bad_call03.lus spawn ./lus2lic -o /tmp/onlyroll.lic should_work/onlyroll.lus PASS: ./lus2lic {-o /tmp/onlyroll.lic should_work/onlyroll.lus} spawn ./lus2lic -ec -o /tmp/onlyroll.ec should_work/onlyroll.lus PASS: ./lus2lic {-ec -o /tmp/onlyroll.ec should_work/onlyroll.lus} -spawn ./ec2c -o /tmp/onlyroll.c /tmp/onlyroll.ec -PASS: ./ec2c {-o /tmp/onlyroll.c /tmp/onlyroll.ec} +spawn ./myec2c -o /tmp/onlyroll.c /tmp/onlyroll.ec +PASS: ./myec2c {-o /tmp/onlyroll.c /tmp/onlyroll.ec} +spawn ../utils/test_lus2lic_no_node should_work/onlyroll.lus ++ ./lus2lic should_work/onlyroll.lus -n onlyroll --gen-autotest -np +_onlyroll_env.lut generated. +_onlyroll_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/onlyroll.lus ++ ./lus2lic should_work/onlyroll.lus -n onlyroll -ec -o onlyroll.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:onlyroll.ec:onlyroll -rp env:lutin:_onlyroll_env.lut -rp oracle:v6:_onlyroll_oracle.lus:onlyroll_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/onlyroll.lus spawn ./lus2lic -o /tmp/produitBool.lic should_work/produitBool.lus PASS: ./lus2lic {-o /tmp/produitBool.lic should_work/produitBool.lus} spawn ./lus2lic -ec -o /tmp/produitBool.ec should_work/produitBool.lus PASS: ./lus2lic {-ec -o /tmp/produitBool.ec should_work/produitBool.lus} -spawn ./ec2c -o /tmp/produitBool.c /tmp/produitBool.ec -PASS: ./ec2c {-o /tmp/produitBool.c /tmp/produitBool.ec} +spawn ./myec2c -o /tmp/produitBool.c /tmp/produitBool.ec +PASS: ./myec2c {-o /tmp/produitBool.c /tmp/produitBool.ec} +spawn ../utils/test_lus2lic_no_node should_work/produitBool.lus ++ ./lus2lic should_work/produitBool.lus -n produitBool --gen-autotest -np +_produitBool_env.lut generated. +_produitBool_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/produitBool.lus ++ ./lus2lic should_work/produitBool.lus -n produitBool -ec -o produitBool.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:produitBool.ec:produitBool -rp env:lutin:_produitBool_env.lut -rp oracle:v6:_produitBool_oracle.lus:produitBool_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/produitBool.lus spawn ./lus2lic -o /tmp/noeudsIndependants.lic should_work/noeudsIndependants.lus PASS: ./lus2lic {-o /tmp/noeudsIndependants.lic should_work/noeudsIndependants.lus} spawn ./lus2lic -ec -o /tmp/noeudsIndependants.ec should_work/noeudsIndependants.lus PASS: ./lus2lic {-ec -o /tmp/noeudsIndependants.ec should_work/noeudsIndependants.lus} -spawn ./ec2c -o /tmp/noeudsIndependants.c /tmp/noeudsIndependants.ec -PASS: ./ec2c {-o /tmp/noeudsIndependants.c /tmp/noeudsIndependants.ec} +spawn ./myec2c -o /tmp/noeudsIndependants.c /tmp/noeudsIndependants.ec +PASS: ./myec2c {-o /tmp/noeudsIndependants.c /tmp/noeudsIndependants.ec} +spawn ../utils/test_lus2lic_no_node should_work/noeudsIndependants.lus ++ ./lus2lic should_work/noeudsIndependants.lus -n noeudsIndependants --gen-autotest -np +_noeudsIndependants_env.lut generated. +_noeudsIndependants_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/noeudsIndependants.lus ++ ./lus2lic should_work/noeudsIndependants.lus -n noeudsIndependants -ec -o noeudsIndependants.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:noeudsIndependants.ec:noeudsIndependants -rp env:lutin:_noeudsIndependants_env.lut -rp oracle:v6:_noeudsIndependants_oracle.lus:noeudsIndependants_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/noeudsIndependants.lus spawn ./lus2lic -o /tmp/mouse.lic should_work/mouse.lus PASS: ./lus2lic {-o /tmp/mouse.lic should_work/mouse.lus} spawn ./lus2lic -ec -o /tmp/mouse.ec should_work/mouse.lus PASS: ./lus2lic {-ec -o /tmp/mouse.ec should_work/mouse.lus} -spawn ./ec2c -o /tmp/mouse.c /tmp/mouse.ec -PASS: ./ec2c {-o /tmp/mouse.c /tmp/mouse.ec} +spawn ./myec2c -o /tmp/mouse.c /tmp/mouse.ec +PASS: ./myec2c {-o /tmp/mouse.c /tmp/mouse.ec} +spawn ../utils/test_lus2lic_no_node should_work/mouse.lus ++ ./lus2lic should_work/mouse.lus -n mouse --gen-autotest -np +_mouse_env.lut generated. +_mouse_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/mouse.lus ++ ./lus2lic should_work/mouse.lus -n mouse -ec -o mouse.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:mouse.ec:mouse -rp env:lutin:_mouse_env.lut -rp oracle:v6:_mouse_oracle.lus:mouse_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/mouse.lus spawn ./lus2lic -o /tmp/param_node3.lic should_work/param_node3.lus PASS: ./lus2lic {-o /tmp/param_node3.lic should_work/param_node3.lus} spawn ./lus2lic -ec -o /tmp/param_node3.ec should_work/param_node3.lus PASS: ./lus2lic {-ec -o /tmp/param_node3.ec should_work/param_node3.lus} -spawn ./ec2c -o /tmp/param_node3.c /tmp/param_node3.ec -PASS: ./ec2c {-o /tmp/param_node3.c /tmp/param_node3.ec} +spawn ./myec2c -o /tmp/param_node3.c /tmp/param_node3.ec +PASS: ./myec2c {-o /tmp/param_node3.c /tmp/param_node3.ec} +spawn ../utils/test_lus2lic_no_node should_work/param_node3.lus ++ ./lus2lic should_work/param_node3.lus -n param_node3 --gen-autotest -np +_param_node3_env.lut generated. +_param_node3_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/param_node3.lus ++ ./lus2lic should_work/param_node3.lus -n param_node3 -ec -o param_node3.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:param_node3.ec:param_node3 -rp env:lutin:_param_node3_env.lut -rp oracle:v6:_param_node3_oracle.lus:param_node3_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/param_node3.lus spawn ./lus2lic -o /tmp/pipeline.lic should_work/pipeline.lus PASS: ./lus2lic {-o /tmp/pipeline.lic should_work/pipeline.lus} spawn ./lus2lic -ec -o /tmp/pipeline.ec should_work/pipeline.lus PASS: ./lus2lic {-ec -o /tmp/pipeline.ec should_work/pipeline.lus} -spawn ./ec2c -o /tmp/pipeline.c /tmp/pipeline.ec -PASS: ./ec2c {-o /tmp/pipeline.c /tmp/pipeline.ec} +spawn ./myec2c -o /tmp/pipeline.c /tmp/pipeline.ec +PASS: ./myec2c {-o /tmp/pipeline.c /tmp/pipeline.ec} +spawn ../utils/test_lus2lic_no_node should_work/pipeline.lus ++ ./lus2lic should_work/pipeline.lus -n pipeline --gen-autotest -np +_pipeline_env.lut generated. +_pipeline_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/pipeline.lus ++ ./lus2lic should_work/pipeline.lus -n pipeline -ec -o pipeline.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:pipeline.ec:pipeline -rp env:lutin:_pipeline_env.lut -rp oracle:v6:_pipeline_oracle.lus:pipeline_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. + +*** The oracle returned false at step 1 +Other Oracle outputs that are true: + out_bis_0 + out_bis_1 + out_bis_2 + out_bis_3 + out_bis_4 + out_bis_5 + out_bis_6 + out_bis_7 + out_bis_8 + out_bis_9 +Oracle inputs: + in_0=t + in_1=f + in_2=f + in_3=t + in_4=f + in_5=f + in_6=t + in_7=t + in_8=t + in_9=f + out_0=f + out_1=f + out_2=f + out_3=f + out_4=t + out_5=f + out_6=t + out_7=f + out_8=f + out_9=f + +*** The oracle returned false at step 1 +Other Oracle outputs that are true: + out_bis_0 + out_bis_1 + out_bis_2 + out_bis_3 + out_bis_4 + out_bis_5 + out_bis_6 + out_bis_7 + out_bis_8 + out_bis_9 +Oracle inputs: + in_0=t + in_1=f + in_2=f + in_3=t + in_4=f + in_5=f + in_6=t + in_7=t + in_8=t + in_9=f + out_0=f + out_1=f + out_2=f + out_3=f + out_4=t + out_5=f + out_6=t + out_7=f + out_8=f + out_9=f + +Lurette launched a process that failed (exit 2). + +break signal catched + +lurettetop: bye! ++ echo error +error ++ exit 2 +FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/pipeline.lus spawn ./lus2lic -o /tmp/mapinf.lic should_work/mapinf.lus PASS: ./lus2lic {-o /tmp/mapinf.lic should_work/mapinf.lus} spawn ./lus2lic -ec -o /tmp/mapinf.ec should_work/mapinf.lus PASS: ./lus2lic {-ec -o /tmp/mapinf.ec should_work/mapinf.lus} -spawn ./ec2c -o /tmp/mapinf.c /tmp/mapinf.ec -PASS: ./ec2c {-o /tmp/mapinf.c /tmp/mapinf.ec} +spawn ./myec2c -o /tmp/mapinf.c /tmp/mapinf.ec +PASS: ./myec2c {-o /tmp/mapinf.c /tmp/mapinf.ec} +spawn ../utils/test_lus2lic_no_node should_work/mapinf.lus ++ ./lus2lic should_work/mapinf.lus -n mapinf --gen-autotest -np +_mapinf_env.lut generated. +_mapinf_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/mapinf.lus ++ ./lus2lic should_work/mapinf.lus -n mapinf -ec -o mapinf.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:mapinf.ec:mapinf -rp env:lutin:_mapinf_env.lut -rp oracle:v6:_mapinf_oracle.lus:mapinf_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/mapinf.lus spawn ./lus2lic -o /tmp/integrator.lic should_work/integrator.lus PASS: ./lus2lic {-o /tmp/integrator.lic should_work/integrator.lus} spawn ./lus2lic -ec -o /tmp/integrator.ec should_work/integrator.lus PASS: ./lus2lic {-ec -o /tmp/integrator.ec should_work/integrator.lus} -spawn ./ec2c -o /tmp/integrator.c /tmp/integrator.ec -PASS: ./ec2c {-o /tmp/integrator.c /tmp/integrator.ec} +spawn ./myec2c -o /tmp/integrator.c /tmp/integrator.ec +PASS: ./myec2c {-o /tmp/integrator.c /tmp/integrator.ec} +spawn ../utils/test_lus2lic_no_node should_work/integrator.lus ++ ./lus2lic should_work/integrator.lus -n integrator --gen-autotest -np +_integrator_env.lut generated. +_integrator_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/integrator.lus ++ ./lus2lic should_work/integrator.lus -n integrator -ec -o integrator.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:integrator.ec:integrator -rp env:lutin:_integrator_env.lut -rp oracle:v6:_integrator_oracle.lus:integrator_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. + +*** The oracle returned false at step 1 +Oracle numeric outputs: + Y_bis=1305025.02198 +Oracle inputs: + F=5370.98610205 + STEP=-1516.80289185 + init=-6736.47757463 + Y=1305018.902 + +*** The oracle returned false at step 1 +Oracle numeric outputs: + Y_bis=1305025.02198 +Oracle inputs: + F=5370.98610205 + STEP=-1516.80289185 + init=-6736.47757463 + Y=1305018.902 + +Lurette launched a process that failed (exit 2). + +break signal catched + +lurettetop: bye! ++ echo error +error ++ exit 2 +FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/integrator.lus spawn ./lus2lic -o /tmp/nc4.lic should_work/nc4.lus PASS: ./lus2lic {-o /tmp/nc4.lic should_work/nc4.lus} spawn ./lus2lic -ec -o /tmp/nc4.ec should_work/nc4.lus PASS: ./lus2lic {-ec -o /tmp/nc4.ec should_work/nc4.lus} -spawn ./ec2c -o /tmp/nc4.c /tmp/nc4.ec -PASS: ./ec2c {-o /tmp/nc4.c /tmp/nc4.ec} +spawn ./myec2c -o /tmp/nc4.c /tmp/nc4.ec +PASS: ./myec2c {-o /tmp/nc4.c /tmp/nc4.ec} +spawn ../utils/test_lus2lic_no_node should_work/nc4.lus ++ ./lus2lic should_work/nc4.lus -n nc4 --gen-autotest -np +_nc4_env.lut generated. +_nc4_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/nc4.lus ++ ./lus2lic should_work/nc4.lus -n nc4 -ec -o nc4.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:nc4.ec:nc4 -rp env:lutin:_nc4_env.lut -rp oracle:v6:_nc4_oracle.lus:nc4_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/nc4.lus spawn ./lus2lic -o /tmp/mm3.lic should_work/mm3.lus PASS: ./lus2lic {-o /tmp/mm3.lic should_work/mm3.lus} spawn ./lus2lic -ec -o /tmp/mm3.ec should_work/mm3.lus PASS: ./lus2lic {-ec -o /tmp/mm3.ec should_work/mm3.lus} -spawn ./ec2c -o /tmp/mm3.c /tmp/mm3.ec -PASS: ./ec2c {-o /tmp/mm3.c /tmp/mm3.ec} +spawn ./myec2c -o /tmp/mm3.c /tmp/mm3.ec +PASS: ./myec2c {-o /tmp/mm3.c /tmp/mm3.ec} +spawn ../utils/test_lus2lic_no_node should_work/mm3.lus ++ ./lus2lic should_work/mm3.lus -n mm3 --gen-autotest -np +_mm3_env.lut generated. +_mm3_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/mm3.lus ++ ./lus2lic should_work/mm3.lus -n mm3 -ec -o mm3.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:mm3.ec:mm3 -rp env:lutin:_mm3_env.lut -rp oracle:v6:_mm3_oracle.lus:mm3_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/mm3.lus spawn ./lus2lic -o /tmp/over2.lic should_work/over2.lus PASS: ./lus2lic {-o /tmp/over2.lic should_work/over2.lus} spawn ./lus2lic -ec -o /tmp/over2.ec should_work/over2.lus PASS: ./lus2lic {-ec -o /tmp/over2.ec should_work/over2.lus} -spawn ./ec2c -o /tmp/over2.c /tmp/over2.ec -PASS: ./ec2c {-o /tmp/over2.c /tmp/over2.ec} +spawn ./myec2c -o /tmp/over2.c /tmp/over2.ec +PASS: ./myec2c {-o /tmp/over2.c /tmp/over2.ec} +spawn ../utils/test_lus2lic_no_node should_work/over2.lus ++ ./lus2lic should_work/over2.lus -n over2 --gen-autotest -np +_over2_env.lut generated. +_over2_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/over2.lus ++ ./lus2lic should_work/over2.lus -n over2 -ec -o over2.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:over2.ec:over2 -rp env:lutin:_over2_env.lut -rp oracle:v6:_over2_oracle.lus:over2_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/over2.lus spawn ./lus2lic -o /tmp/over3.lic should_work/over3.lus PASS: ./lus2lic {-o /tmp/over3.lic should_work/over3.lus} spawn ./lus2lic -ec -o /tmp/over3.ec should_work/over3.lus PASS: ./lus2lic {-ec -o /tmp/over3.ec should_work/over3.lus} -spawn ./ec2c -o /tmp/over3.c /tmp/over3.ec -PASS: ./ec2c {-o /tmp/over3.c /tmp/over3.ec} +spawn ./myec2c -o /tmp/over3.c /tmp/over3.ec +PASS: ./myec2c {-o /tmp/over3.c /tmp/over3.ec} +spawn ../utils/test_lus2lic_no_node should_work/over3.lus ++ ./lus2lic should_work/over3.lus -n over3 --gen-autotest -np +_over3_env.lut generated. +_over3_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/over3.lus ++ ./lus2lic should_work/over3.lus -n over3 -ec -o over3.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:over3.ec:over3 -rp env:lutin:_over3_env.lut -rp oracle:v6:_over3_oracle.lus:over3_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/over3.lus spawn ./lus2lic -o /tmp/complex.lic should_work/complex.lus PASS: ./lus2lic {-o /tmp/complex.lic should_work/complex.lus} spawn ./lus2lic -ec -o /tmp/complex.ec should_work/complex.lus PASS: ./lus2lic {-ec -o /tmp/complex.ec should_work/complex.lus} -spawn ./ec2c -o /tmp/complex.c /tmp/complex.ec -PASS: ./ec2c {-o /tmp/complex.c /tmp/complex.ec} +spawn ./myec2c -o /tmp/complex.c /tmp/complex.ec +PASS: ./myec2c {-o /tmp/complex.c /tmp/complex.ec} +spawn ../utils/test_lus2lic_no_node should_work/complex.lus ++ ./lus2lic should_work/complex.lus -n complex --gen-autotest -np +_complex_env.lut generated. +_complex_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/complex.lus ++ ./lus2lic should_work/complex.lus -n complex -ec -o complex.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:complex.ec:complex -rp env:lutin:_complex_env.lut -rp oracle:v6:_complex_oracle.lus:complex_oracle -go -l 10 -ns2c --stop-on-oracle-error +Error in lurette: Parsing.Parse_error +Lurette launched a process that failed (exit 2). + +break signal catched + +lurettetop: bye! ++ echo error +error ++ exit 2 +FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/complex.lus spawn ./lus2lic -o /tmp/initial.lic should_work/initial.lus PASS: ./lus2lic {-o /tmp/initial.lic should_work/initial.lus} spawn ./lus2lic -ec -o /tmp/initial.ec should_work/initial.lus PASS: ./lus2lic {-ec -o /tmp/initial.ec should_work/initial.lus} -spawn ./ec2c -o /tmp/initial.c /tmp/initial.ec -PASS: ./ec2c {-o /tmp/initial.c /tmp/initial.ec} +spawn ./myec2c -o /tmp/initial.c /tmp/initial.ec +PASS: ./myec2c {-o /tmp/initial.c /tmp/initial.ec} +spawn ../utils/test_lus2lic_no_node should_work/initial.lus ++ ./lus2lic should_work/initial.lus -n initial --gen-autotest -np +_initial_env.lut generated. +_initial_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/initial.lus ++ ./lus2lic should_work/initial.lus -n initial -ec -o initial.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:initial.ec:initial -rp env:lutin:_initial_env.lut -rp oracle:v6:_initial_oracle.lus:initial_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/initial.lus spawn ./lus2lic -o /tmp/declaration.lic should_work/declaration.lus PASS: ./lus2lic {-o /tmp/declaration.lic should_work/declaration.lus} spawn ./lus2lic -ec -o /tmp/declaration.ec should_work/declaration.lus PASS: ./lus2lic {-ec -o /tmp/declaration.ec should_work/declaration.lus} -spawn ./ec2c -o /tmp/declaration.c /tmp/declaration.ec -PASS: ./ec2c {-o /tmp/declaration.c /tmp/declaration.ec} +spawn ./myec2c -o /tmp/declaration.c /tmp/declaration.ec +PASS: ./myec2c {-o /tmp/declaration.c /tmp/declaration.ec} +spawn ../utils/test_lus2lic_no_node should_work/declaration.lus ++ ./lus2lic should_work/declaration.lus -n declaration --gen-autotest -np +_declaration_env.lut generated. +_declaration_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/declaration.lus ++ ./lus2lic should_work/declaration.lus -n declaration -ec -o declaration.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:declaration.ec:declaration -rp env:lutin:_declaration_env.lut -rp oracle:v6:_declaration_oracle.lus:declaration_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/declaration.lus spawn ./lus2lic -o /tmp/PCOND1.lic should_work/PCOND1.lus PASS: ./lus2lic {-o /tmp/PCOND1.lic should_work/PCOND1.lus} spawn ./lus2lic -ec -o /tmp/PCOND1.ec should_work/PCOND1.lus PASS: ./lus2lic {-ec -o /tmp/PCOND1.ec should_work/PCOND1.lus} -spawn ./ec2c -o /tmp/PCOND1.c /tmp/PCOND1.ec -PASS: ./ec2c {-o /tmp/PCOND1.c /tmp/PCOND1.ec} +spawn ./myec2c -o /tmp/PCOND1.c /tmp/PCOND1.ec +PASS: ./myec2c {-o /tmp/PCOND1.c /tmp/PCOND1.ec} +spawn ../utils/test_lus2lic_no_node should_work/PCOND1.lus ++ ./lus2lic should_work/PCOND1.lus -n PCOND1 --gen-autotest -np +_PCOND1_env.lut generated. +_PCOND1_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/PCOND1.lus ++ ./lus2lic should_work/PCOND1.lus -n PCOND1 -ec -o PCOND1.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:PCOND1.ec:PCOND1 -rp env:lutin:_PCOND1_env.lut -rp oracle:v6:_PCOND1_oracle.lus:PCOND1_oracle -go -l 10 -ns2c --stop-on-oracle-error +Error in lurette: Lv6errors.Compile_error(_, "\n*** clock error: The two following clocks are not compatible:\n***\t on base\n***\t on h0 on base\n") +Lurette launched a process that failed (exit 2). + +break signal catched + +lurettetop: bye! ++ echo error +error ++ exit 2 +FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/PCOND1.lus spawn ./lus2lic -o /tmp/TIME_STABLE1.lic should_work/TIME_STABLE1.lus PASS: ./lus2lic {-o /tmp/TIME_STABLE1.lic should_work/TIME_STABLE1.lus} spawn ./lus2lic -ec -o /tmp/TIME_STABLE1.ec should_work/TIME_STABLE1.lus PASS: ./lus2lic {-ec -o /tmp/TIME_STABLE1.ec should_work/TIME_STABLE1.lus} -spawn ./ec2c -o /tmp/TIME_STABLE1.c /tmp/TIME_STABLE1.ec -PASS: ./ec2c {-o /tmp/TIME_STABLE1.c /tmp/TIME_STABLE1.ec} +spawn ./myec2c -o /tmp/TIME_STABLE1.c /tmp/TIME_STABLE1.ec +PASS: ./myec2c {-o /tmp/TIME_STABLE1.c /tmp/TIME_STABLE1.ec} +spawn ../utils/test_lus2lic_no_node should_work/TIME_STABLE1.lus ++ ./lus2lic should_work/TIME_STABLE1.lus -n TIME_STABLE1 --gen-autotest -np +_TIME_STABLE1_env.lut generated. +_TIME_STABLE1_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/TIME_STABLE1.lus ++ ./lus2lic should_work/TIME_STABLE1.lus -n TIME_STABLE1 -ec -o TIME_STABLE1.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:TIME_STABLE1.ec:TIME_STABLE1 -rp env:lutin:_TIME_STABLE1_env.lut -rp oracle:v6:_TIME_STABLE1_oracle.lus:TIME_STABLE1_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/TIME_STABLE1.lus spawn ./lus2lic -o /tmp/nc5.lic should_work/nc5.lus PASS: ./lus2lic {-o /tmp/nc5.lic should_work/nc5.lus} spawn ./lus2lic -ec -o /tmp/nc5.ec should_work/nc5.lus PASS: ./lus2lic {-ec -o /tmp/nc5.ec should_work/nc5.lus} -spawn ./ec2c -o /tmp/nc5.c /tmp/nc5.ec -PASS: ./ec2c {-o /tmp/nc5.c /tmp/nc5.ec} +spawn ./myec2c -o /tmp/nc5.c /tmp/nc5.ec +PASS: ./myec2c {-o /tmp/nc5.c /tmp/nc5.ec} +spawn ../utils/test_lus2lic_no_node should_work/nc5.lus ++ ./lus2lic should_work/nc5.lus -n nc5 --gen-autotest -np +_nc5_env.lut generated. +_nc5_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/nc5.lus ++ ./lus2lic should_work/nc5.lus -n nc5 -ec -o nc5.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:nc5.ec:nc5 -rp env:lutin:_nc5_env.lut -rp oracle:v6:_nc5_oracle.lus:nc5_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/nc5.lus spawn ./lus2lic -o /tmp/call.lic should_work/call.lus PASS: ./lus2lic {-o /tmp/call.lic should_work/call.lus} spawn ./lus2lic -ec -o /tmp/call.ec should_work/call.lus PASS: ./lus2lic {-ec -o /tmp/call.ec should_work/call.lus} -spawn ./ec2c -o /tmp/call.c /tmp/call.ec -PASS: ./ec2c {-o /tmp/call.c /tmp/call.ec} +spawn ./myec2c -o /tmp/call.c /tmp/call.ec +Segmentation fault +FAIL: Try ec2c on the result: ./myec2c {-o /tmp/call.c /tmp/call.ec} spawn ./lus2lic -o /tmp/mouse1.lic should_work/mouse1.lus PASS: ./lus2lic {-o /tmp/mouse1.lic should_work/mouse1.lus} spawn ./lus2lic -ec -o /tmp/mouse1.ec should_work/mouse1.lus PASS: ./lus2lic {-ec -o /tmp/mouse1.ec should_work/mouse1.lus} -spawn ./ec2c -o /tmp/mouse1.c /tmp/mouse1.ec -PASS: ./ec2c {-o /tmp/mouse1.c /tmp/mouse1.ec} +spawn ./myec2c -o /tmp/mouse1.c /tmp/mouse1.ec +PASS: ./myec2c {-o /tmp/mouse1.c /tmp/mouse1.ec} +spawn ../utils/test_lus2lic_no_node should_work/mouse1.lus ++ ./lus2lic should_work/mouse1.lus -n mouse1 --gen-autotest -np +_mouse1_env.lut generated. +_mouse1_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/mouse1.lus ++ ./lus2lic should_work/mouse1.lus -n mouse1 -ec -o mouse1.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:mouse1.ec:mouse1 -rp env:lutin:_mouse1_env.lut -rp oracle:v6:_mouse1_oracle.lus:mouse1_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok +PASS: ../utils/test_lus2lic_no_node should_work/mouse1.lus spawn ./lus2lic -o /tmp/lustre_test1_ok.lic should_work/lustre_test1_ok.lus PASS: ./lus2lic {-o /tmp/lustre_test1_ok.lic should_work/lustre_test1_ok.lus} spawn ./lus2lic -ec -o /tmp/lustre_test1_ok.ec should_work/lustre_test1_ok.lus PASS: ./lus2lic {-ec -o /tmp/lustre_test1_ok.ec should_work/lustre_test1_ok.lus} -spawn ./ec2c -o /tmp/lustre_test1_ok.c /tmp/lustre_test1_ok.ec -PASS: ./ec2c {-o /tmp/lustre_test1_ok.c /tmp/lustre_test1_ok.ec} +spawn ./myec2c -o /tmp/lustre_test1_ok.c /tmp/lustre_test1_ok.ec +PASS: ./myec2c {-o /tmp/lustre_test1_ok.c /tmp/lustre_test1_ok.ec} +spawn ../utils/test_lus2lic_no_node should_work/lustre_test1_ok.lus ++ ./lus2lic should_work/lustre_test1_ok.lus -n lustre_test1_ok --gen-autotest -np +_lustre_test1_ok_env.lut generated. +_lustre_test1_ok_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/lustre_test1_ok.lus ++ ./lus2lic should_work/lustre_test1_ok.lus -n lustre_test1_ok -ec -o lustre_test1_ok.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:lustre_test1_ok.ec:lustre_test1_ok -rp env:lutin:_lustre_test1_ok_env.lut -rp oracle:v6:_lustre_test1_ok_oracle.lus:lustre_test1_ok_oracle -go -l 10 -ns2c --stop-on-oracle-error +Error in lurette: Lv6errors.Compile_error(_, "\n*** clock error: The two following clocks are not compatible:\n***\t on base\n***\t on cl1_2 on base\n") +Lurette launched a process that failed (exit 2). + +break signal catched + +lurettetop: bye! ++ echo error +error ++ exit 2 +FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/lustre_test1_ok.lus spawn ./lus2lic -o /tmp/compteur.lic should_work/compteur.lus PASS: ./lus2lic {-o /tmp/compteur.lic should_work/compteur.lus} spawn ./lus2lic -ec -o /tmp/compteur.ec should_work/compteur.lus PASS: ./lus2lic {-ec -o /tmp/compteur.ec should_work/compteur.lus} -spawn ./ec2c -o /tmp/compteur.c /tmp/compteur.ec -PASS: ./ec2c {-o /tmp/compteur.c /tmp/compteur.ec} +spawn ./myec2c -o /tmp/compteur.c /tmp/compteur.ec +PASS: ./myec2c {-o /tmp/compteur.c /tmp/compteur.ec} +spawn ../utils/test_lus2lic_no_node should_work/compteur.lus ++ ./lus2lic should_work/compteur.lus -n compteur --gen-autotest -np +_compteur_env.lut generated. +_compteur_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/compteur.lus ++ ./lus2lic should_work/compteur.lus -n compteur -ec -o compteur.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:compteur.ec:compteur -rp env:lutin:_compteur_env.lut -rp oracle:v6:_compteur_oracle.lus:compteur_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/compteur.lus spawn ./lus2lic -o /tmp/Int.lic should_work/Int.lus PASS: ./lus2lic {-o /tmp/Int.lic should_work/Int.lus} spawn ./lus2lic -ec -o /tmp/Int.ec should_work/Int.lus PASS: ./lus2lic {-ec -o /tmp/Int.ec should_work/Int.lus} -spawn ./ec2c -o /tmp/Int.c /tmp/Int.ec -PASS: ./ec2c {-o /tmp/Int.c /tmp/Int.ec} +spawn ./myec2c -o /tmp/Int.c /tmp/Int.ec +PASS: ./myec2c {-o /tmp/Int.c /tmp/Int.ec} +spawn ../utils/test_lus2lic_no_node should_work/Int.lus ++ ./lus2lic should_work/Int.lus -n Int --gen-autotest -np +*** Can not find package 'Int' in the following packages: +*** 'mainPack' +*** 'Int8' ++ echo Error +Error ++ exit 2 +FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/Int.lus +spawn ./lus2lic -o /tmp/tranche.lic should_work/tranche.lus +*** Error in file "/home/jahier/lus2lic/test/should_work/tranche.lus", line 7, col 5 to 5, token 'n': +*** +*** can't eval constant: +*** cannot access this extern constant value + +FAIL: without any option: ./lus2lic {-o /tmp/tranche.lic should_work/tranche.lus} +spawn ./lus2lic -ec -o /tmp/tranche.ec should_work/tranche.lus +*** Error in file "/home/jahier/lus2lic/test/should_work/tranche.lus", line 7, col 5 to 5, token 'n': +*** +*** can't eval constant: +*** cannot access this extern constant value + +FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/tranche.ec should_work/tranche.lus} spawn ./lus2lic -o /tmp/t2.lic should_work/t2.lus PASS: ./lus2lic {-o /tmp/t2.lic should_work/t2.lus} spawn ./lus2lic -ec -o /tmp/t2.ec should_work/t2.lus PASS: ./lus2lic {-ec -o /tmp/t2.ec should_work/t2.lus} -spawn ./ec2c -o /tmp/t2.c /tmp/t2.ec -PASS: ./ec2c {-o /tmp/t2.c /tmp/t2.ec} +spawn ./myec2c -o /tmp/t2.c /tmp/t2.ec +PASS: ./myec2c {-o /tmp/t2.c /tmp/t2.ec} +spawn ../utils/test_lus2lic_no_node should_work/t2.lus ++ ./lus2lic should_work/t2.lus -n t2 --gen-autotest -np +_t2_env.lut generated. +_t2_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/t2.lus ++ ./lus2lic should_work/t2.lus -n t2 -ec -o t2.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:t2.ec:t2 -rp env:lutin:_t2_env.lut -rp oracle:v6:_t2_oracle.lus:t2_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/t2.lus spawn ./lus2lic -o /tmp/arbitre.lic should_work/arbitre.lus PASS: ./lus2lic {-o /tmp/arbitre.lic should_work/arbitre.lus} spawn ./lus2lic -ec -o /tmp/arbitre.ec should_work/arbitre.lus PASS: ./lus2lic {-ec -o /tmp/arbitre.ec should_work/arbitre.lus} -spawn ./ec2c -o /tmp/arbitre.c /tmp/arbitre.ec -PASS: ./ec2c {-o /tmp/arbitre.c /tmp/arbitre.ec} +spawn ./myec2c -o /tmp/arbitre.c /tmp/arbitre.ec +Segmentation fault +FAIL: Try ec2c on the result: ./myec2c {-o /tmp/arbitre.c /tmp/arbitre.ec} spawn ./lus2lic -o /tmp/test_const.lic should_work/test_const.lus PASS: ./lus2lic {-o /tmp/test_const.lic should_work/test_const.lus} spawn ./lus2lic -ec -o /tmp/test_const.ec should_work/test_const.lus PASS: ./lus2lic {-ec -o /tmp/test_const.ec should_work/test_const.lus} -spawn ./ec2c -o /tmp/test_const.c /tmp/test_const.ec -PASS: ./ec2c {-o /tmp/test_const.c /tmp/test_const.ec} +spawn ./myec2c -o /tmp/test_const.c /tmp/test_const.ec +PASS: ./myec2c {-o /tmp/test_const.c /tmp/test_const.ec} +spawn ../utils/test_lus2lic_no_node should_work/test_const.lus ++ ./lus2lic should_work/test_const.lus -n test_const --gen-autotest -np +_test_const_env.lut generated. +_test_const_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/test_const.lus ++ ./lus2lic should_work/test_const.lus -n test_const -ec -o test_const.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:test_const.ec:test_const -rp env:lutin:_test_const_env.lut -rp oracle:v6:_test_const_oracle.lus:test_const_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/test_const.lus spawn ./lus2lic -o /tmp/when_tuple.lic should_work/when_tuple.lus PASS: ./lus2lic {-o /tmp/when_tuple.lic should_work/when_tuple.lus} spawn ./lus2lic -ec -o /tmp/when_tuple.ec should_work/when_tuple.lus PASS: ./lus2lic {-ec -o /tmp/when_tuple.ec should_work/when_tuple.lus} -spawn ./ec2c -o /tmp/when_tuple.c /tmp/when_tuple.ec -PASS: ./ec2c {-o /tmp/when_tuple.c /tmp/when_tuple.ec} +spawn ./myec2c -o /tmp/when_tuple.c /tmp/when_tuple.ec +Segmentation fault +FAIL: Try ec2c on the result: ./myec2c {-o /tmp/when_tuple.c /tmp/when_tuple.ec} +spawn ./lus2lic -o /tmp/carV2.lic should_work/carV2.lus +PASS: ./lus2lic {-o /tmp/carV2.lic should_work/carV2.lus} +spawn ./lus2lic -ec -o /tmp/carV2.ec should_work/carV2.lus +PASS: ./lus2lic {-ec -o /tmp/carV2.ec should_work/carV2.lus} +spawn ./myec2c -o /tmp/carV2.c /tmp/carV2.ec +PASS: ./myec2c {-o /tmp/carV2.c /tmp/carV2.ec} +spawn ../utils/test_lus2lic_no_node should_work/carV2.lus ++ ./lus2lic should_work/carV2.lus -n carV2 --gen-autotest -np +_carV2_env.lut generated. +_carV2_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/carV2.lus ++ ./lus2lic should_work/carV2.lus -n carV2 -ec -o carV2.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:carV2.ec:carV2 -rp env:lutin:_carV2_env.lut -rp oracle:v6:_carV2_oracle.lus:carV2_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/carV2.lus +spawn ./lus2lic -o /tmp/test_merge.lic should_work/test_merge.lus +PASS: ./lus2lic {-o /tmp/test_merge.lic should_work/test_merge.lus} +spawn ./lus2lic -ec -o /tmp/test_merge.ec should_work/test_merge.lus +PASS: ./lus2lic {-ec -o /tmp/test_merge.ec should_work/test_merge.lus} +spawn ./myec2c -o /tmp/test_merge.c /tmp/test_merge.ec +syntax error - at line 14 +syntax errors... +FAIL: Try ec2c on the result: ./myec2c {-o /tmp/test_merge.c /tmp/test_merge.ec} spawn ./lus2lic -o /tmp/FillFollowedByRed.lic should_work/FillFollowedByRed.lus PASS: ./lus2lic {-o /tmp/FillFollowedByRed.lic should_work/FillFollowedByRed.lus} spawn ./lus2lic -ec -o /tmp/FillFollowedByRed.ec should_work/FillFollowedByRed.lus PASS: ./lus2lic {-ec -o /tmp/FillFollowedByRed.ec should_work/FillFollowedByRed.lus} -spawn ./ec2c -o /tmp/FillFollowedByRed.c /tmp/FillFollowedByRed.ec -PASS: ./ec2c {-o /tmp/FillFollowedByRed.c /tmp/FillFollowedByRed.ec} +spawn ./myec2c -o /tmp/FillFollowedByRed.c /tmp/FillFollowedByRed.ec +PASS: ./myec2c {-o /tmp/FillFollowedByRed.c /tmp/FillFollowedByRed.ec} +spawn ../utils/test_lus2lic_no_node should_work/FillFollowedByRed.lus ++ ./lus2lic should_work/FillFollowedByRed.lus -n FillFollowedByRed --gen-autotest -np +_FillFollowedByRed_env.lut generated. +_FillFollowedByRed_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/FillFollowedByRed.lus ++ ./lus2lic should_work/FillFollowedByRed.lus -n FillFollowedByRed -ec -o FillFollowedByRed.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:FillFollowedByRed.ec:FillFollowedByRed -rp env:lutin:_FillFollowedByRed_env.lut -rp oracle:v6:_FillFollowedByRed_oracle.lus:FillFollowedByRed_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/FillFollowedByRed.lus spawn ./lus2lic -o /tmp/sample_time_change.lic should_work/sample_time_change.lus PASS: ./lus2lic {-o /tmp/sample_time_change.lic should_work/sample_time_change.lus} spawn ./lus2lic -ec -o /tmp/sample_time_change.ec should_work/sample_time_change.lus PASS: ./lus2lic {-ec -o /tmp/sample_time_change.ec should_work/sample_time_change.lus} -spawn ./ec2c -o /tmp/sample_time_change.c /tmp/sample_time_change.ec -PASS: ./ec2c {-o /tmp/sample_time_change.c /tmp/sample_time_change.ec} +spawn ./myec2c -o /tmp/sample_time_change.c /tmp/sample_time_change.ec +PASS: ./myec2c {-o /tmp/sample_time_change.c /tmp/sample_time_change.ec} +spawn ../utils/test_lus2lic_no_node should_work/sample_time_change.lus ++ ./lus2lic should_work/sample_time_change.lus -n sample_time_change --gen-autotest -np +_sample_time_change_env.lut generated. +_sample_time_change_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/sample_time_change.lus ++ ./lus2lic should_work/sample_time_change.lus -n sample_time_change -ec -o sample_time_change.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:sample_time_change.ec:sample_time_change -rp env:lutin:_sample_time_change_env.lut -rp oracle:v6:_sample_time_change_oracle.lus:sample_time_change_oracle -go -l 10 -ns2c --stop-on-oracle-error +Error in lurette: Lv6errors.Compile_error(_, "\n*** clock error: The two following clocks are not compatible:\n***\t on base\n***\t on cl1_12_3 on base\n") +Lurette launched a process that failed (exit 2). + +break signal catched + +lurettetop: bye! ++ echo error +error ++ exit 2 +FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/sample_time_change.lus +spawn ./lus2lic -o /tmp/test_enum.lic should_work/test_enum.lus +PASS: ./lus2lic {-o /tmp/test_enum.lic should_work/test_enum.lus} +spawn ./lus2lic -ec -o /tmp/test_enum.ec should_work/test_enum.lus +PASS: ./lus2lic {-ec -o /tmp/test_enum.ec should_work/test_enum.lus} +spawn ./myec2c -o /tmp/test_enum.c /tmp/test_enum.ec +PASS: ./myec2c {-o /tmp/test_enum.c /tmp/test_enum.ec} +spawn ../utils/test_lus2lic_no_node should_work/test_enum.lus ++ ./lus2lic should_work/test_enum.lus -n test_enum --gen-autotest -np +_test_enum_env.lut generated. +_test_enum_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/test_enum.lus ++ ./lus2lic should_work/test_enum.lus -n test_enum -ec -o test_enum.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:test_enum.ec:test_enum -rp env:lutin:_test_enum_env.lut -rp oracle:v6:_test_enum_oracle.lus:test_enum_oracle -go -l 10 -ns2c --stop-on-oracle-error +Error in lurette: Failure("couleur: unsupported type.\n") +Lurette launched a process that failed (exit 2). + +break signal catched + +lurettetop: bye! ++ echo error +error ++ exit 2 +FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/test_enum.lus spawn ./lus2lic -o /tmp/predef01.lic should_work/predef01.lus PASS: ./lus2lic {-o /tmp/predef01.lic should_work/predef01.lus} spawn ./lus2lic -ec -o /tmp/predef01.ec should_work/predef01.lus PASS: ./lus2lic {-ec -o /tmp/predef01.ec should_work/predef01.lus} -spawn ./ec2c -o /tmp/predef01.c /tmp/predef01.ec -PASS: ./ec2c {-o /tmp/predef01.c /tmp/predef01.ec} +spawn ./myec2c -o /tmp/predef01.c /tmp/predef01.ec +PASS: ./myec2c {-o /tmp/predef01.c /tmp/predef01.ec} +spawn ../utils/test_lus2lic_no_node should_work/predef01.lus ++ ./lus2lic should_work/predef01.lus -n predef01 --gen-autotest -np +_predef01_env.lut generated. +_predef01_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/predef01.lus ++ ./lus2lic should_work/predef01.lus -n predef01 -ec -o predef01.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:predef01.ec:predef01 -rp env:lutin:_predef01_env.lut -rp oracle:v6:_predef01_oracle.lus:predef01_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/predef01.lus spawn ./lus2lic -o /tmp/long_et_stupide_nom_de_noeud.lic should_work/long_et_stupide_nom_de_noeud.lus PASS: ./lus2lic {-o /tmp/long_et_stupide_nom_de_noeud.lic should_work/long_et_stupide_nom_de_noeud.lus} spawn ./lus2lic -ec -o /tmp/long_et_stupide_nom_de_noeud.ec should_work/long_et_stupide_nom_de_noeud.lus PASS: ./lus2lic {-ec -o /tmp/long_et_stupide_nom_de_noeud.ec should_work/long_et_stupide_nom_de_noeud.lus} -spawn ./ec2c -o /tmp/long_et_stupide_nom_de_noeud.c /tmp/long_et_stupide_nom_de_noeud.ec -PASS: ./ec2c {-o /tmp/long_et_stupide_nom_de_noeud.c /tmp/long_et_stupide_nom_de_noeud.ec} +spawn ./myec2c -o /tmp/long_et_stupide_nom_de_noeud.c /tmp/long_et_stupide_nom_de_noeud.ec +PASS: ./myec2c {-o /tmp/long_et_stupide_nom_de_noeud.c /tmp/long_et_stupide_nom_de_noeud.ec} +spawn ../utils/test_lus2lic_no_node should_work/long_et_stupide_nom_de_noeud.lus ++ ./lus2lic should_work/long_et_stupide_nom_de_noeud.lus -n long_et_stupide_nom_de_noeud --gen-autotest -np +_long_et_stupide_nom_de_noeud_env.lut generated. +_long_et_stupide_nom_de_noeud_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/long_et_stupide_nom_de_noeud.lus ++ ./lus2lic should_work/long_et_stupide_nom_de_noeud.lus -n long_et_stupide_nom_de_noeud -ec -o long_et_stupide_nom_de_noeud.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:long_et_stupide_nom_de_noeud.ec:long_et_stupide_nom_de_noeud -rp env:lutin:_long_et_stupide_nom_de_noeud_env.lut -rp oracle:v6:_long_et_stupide_nom_de_noeud_oracle.lus:long_et_stupide_nom_de_noeud_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/long_et_stupide_nom_de_noeud.lus spawn ./lus2lic -o /tmp/CURRENT.lic should_work/CURRENT.lus PASS: ./lus2lic {-o /tmp/CURRENT.lic should_work/CURRENT.lus} spawn ./lus2lic -ec -o /tmp/CURRENT.ec should_work/CURRENT.lus PASS: ./lus2lic {-ec -o /tmp/CURRENT.ec should_work/CURRENT.lus} -spawn ./ec2c -o /tmp/CURRENT.c /tmp/CURRENT.ec -PASS: ./ec2c {-o /tmp/CURRENT.c /tmp/CURRENT.ec} +spawn ./myec2c -o /tmp/CURRENT.c /tmp/CURRENT.ec +PASS: ./myec2c {-o /tmp/CURRENT.c /tmp/CURRENT.ec} +spawn ../utils/test_lus2lic_no_node should_work/CURRENT.lus ++ ./lus2lic should_work/CURRENT.lus -n CURRENT --gen-autotest -np +_CURRENT_env.lut generated. +_CURRENT_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/CURRENT.lus ++ ./lus2lic should_work/CURRENT.lus -n CURRENT -ec -o CURRENT.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:CURRENT.ec:CURRENT -rp env:lutin:_CURRENT_env.lut -rp oracle:v6:_CURRENT_oracle.lus:CURRENT_oracle -go -l 10 -ns2c --stop-on-oracle-error +Error in lurette: Lv6errors.Compile_error(_, "\n*** clock error: The two following clocks are not compatible:\n***\t on base\n***\t on x on base\n") +Lurette launched a process that failed (exit 2). + +break signal catched + +lurettetop: bye! ++ echo error +error ++ exit 2 +FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/CURRENT.lus spawn ./lus2lic -o /tmp/left.lic should_work/left.lus PASS: ./lus2lic {-o /tmp/left.lic should_work/left.lus} spawn ./lus2lic -ec -o /tmp/left.ec should_work/left.lus PASS: ./lus2lic {-ec -o /tmp/left.ec should_work/left.lus} -spawn ./ec2c -o /tmp/left.c /tmp/left.ec -PASS: ./ec2c {-o /tmp/left.c /tmp/left.ec} +spawn ./myec2c -o /tmp/left.c /tmp/left.ec +PASS: ./myec2c {-o /tmp/left.c /tmp/left.ec} +spawn ../utils/test_lus2lic_no_node should_work/left.lus ++ ./lus2lic should_work/left.lus -n left --gen-autotest -np +_left_env.lut generated. +_left_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/left.lus ++ ./lus2lic should_work/left.lus -n left -ec -o left.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:left.ec:left -rp env:lutin:_left_env.lut -rp oracle:v6:_left_oracle.lus:left_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/left.lus spawn ./lus2lic -o /tmp/ts04.lic should_work/ts04.lus PASS: ./lus2lic {-o /tmp/ts04.lic should_work/ts04.lus} spawn ./lus2lic -ec -o /tmp/ts04.ec should_work/ts04.lus PASS: ./lus2lic {-ec -o /tmp/ts04.ec should_work/ts04.lus} -spawn ./ec2c -o /tmp/ts04.c /tmp/ts04.ec -PASS: ./ec2c {-o /tmp/ts04.c /tmp/ts04.ec} +spawn ./myec2c -o /tmp/ts04.c /tmp/ts04.ec +PASS: ./myec2c {-o /tmp/ts04.c /tmp/ts04.ec} +spawn ../utils/test_lus2lic_no_node should_work/ts04.lus ++ ./lus2lic should_work/ts04.lus -n ts04 --gen-autotest -np +_ts04_env.lut generated. +_ts04_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/ts04.lus ++ ./lus2lic should_work/ts04.lus -n ts04 -ec -o ts04.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:ts04.ec:ts04 -rp env:lutin:_ts04_env.lut -rp oracle:v6:_ts04_oracle.lus:ts04_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/ts04.lus spawn ./lus2lic -o /tmp/bug_map_fby.lic should_work/bug_map_fby.lus *** Error in file "/home/jahier/lus2lic/test/should_work/bug_map_fby.lus", line 33, col 13 to 15, token 'fby': *** Bad static argument nature, a node was expected @@ -849,740 +3997,3181 @@ spawn ./lus2lic -o /tmp/multiclock.lic should_work/multiclock.lus PASS: ./lus2lic {-o /tmp/multiclock.lic should_work/multiclock.lus} spawn ./lus2lic -ec -o /tmp/multiclock.ec should_work/multiclock.lus PASS: ./lus2lic {-ec -o /tmp/multiclock.ec should_work/multiclock.lus} -spawn ./ec2c -o /tmp/multiclock.c /tmp/multiclock.ec -PASS: ./ec2c {-o /tmp/multiclock.c /tmp/multiclock.ec} +spawn ./myec2c -o /tmp/multiclock.c /tmp/multiclock.ec +PASS: ./myec2c {-o /tmp/multiclock.c /tmp/multiclock.ec} +spawn ../utils/test_lus2lic_no_node should_work/multiclock.lus ++ ./lus2lic should_work/multiclock.lus -n multiclock --gen-autotest -np +_multiclock_env.lut generated. +_multiclock_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/multiclock.lus ++ ./lus2lic should_work/multiclock.lus -n multiclock -ec -o multiclock.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:multiclock.ec:multiclock -rp env:lutin:_multiclock_env.lut -rp oracle:v6:_multiclock_oracle.lus:multiclock_oracle -go -l 10 -ns2c --stop-on-oracle-error +Error in lurette: Lv6errors.Compile_error(_, "\n*** clock error: The two following clocks are not compatible:\n***\t on base\n***\t on c on base\n") +Lurette launched a process that failed (exit 2). + +break signal catched + +lurettetop: bye! ++ echo error +error ++ exit 2 +FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/multiclock.lus spawn ./lus2lic -o /tmp/nc2.lic should_work/nc2.lus PASS: ./lus2lic {-o /tmp/nc2.lic should_work/nc2.lus} spawn ./lus2lic -ec -o /tmp/nc2.ec should_work/nc2.lus PASS: ./lus2lic {-ec -o /tmp/nc2.ec should_work/nc2.lus} -spawn ./ec2c -o /tmp/nc2.c /tmp/nc2.ec -PASS: ./ec2c {-o /tmp/nc2.c /tmp/nc2.ec} +spawn ./myec2c -o /tmp/nc2.c /tmp/nc2.ec +PASS: ./myec2c {-o /tmp/nc2.c /tmp/nc2.ec} +spawn ../utils/test_lus2lic_no_node should_work/nc2.lus ++ ./lus2lic should_work/nc2.lus -n nc2 --gen-autotest -np +_nc2_env.lut generated. +_nc2_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/nc2.lus ++ ./lus2lic should_work/nc2.lus -n nc2 -ec -o nc2.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:nc2.ec:nc2 -rp env:lutin:_nc2_env.lut -rp oracle:v6:_nc2_oracle.lus:nc2_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/nc2.lus spawn ./lus2lic -o /tmp/morel.lic should_work/morel.lus PASS: ./lus2lic {-o /tmp/morel.lic should_work/morel.lus} spawn ./lus2lic -ec -o /tmp/morel.ec should_work/morel.lus PASS: ./lus2lic {-ec -o /tmp/morel.ec should_work/morel.lus} -spawn ./ec2c -o /tmp/morel.c /tmp/morel.ec -PASS: ./ec2c {-o /tmp/morel.c /tmp/morel.ec} +spawn ./myec2c -o /tmp/morel.c /tmp/morel.ec +PASS: ./myec2c {-o /tmp/morel.c /tmp/morel.ec} +spawn ../utils/test_lus2lic_no_node should_work/morel.lus ++ ./lus2lic should_work/morel.lus -n morel --gen-autotest -np +_morel_env.lut generated. +_morel_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/morel.lus ++ ./lus2lic should_work/morel.lus -n morel -ec -o morel.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:morel.ec:morel -rp env:lutin:_morel_env.lut -rp oracle:v6:_morel_oracle.lus:morel_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +PASS: ../utils/test_lus2lic_no_node should_work/morel.lus spawn ./lus2lic -o /tmp/SOURIS.lic should_work/SOURIS.lus PASS: ./lus2lic {-o /tmp/SOURIS.lic should_work/SOURIS.lus} spawn ./lus2lic -ec -o /tmp/SOURIS.ec should_work/SOURIS.lus PASS: ./lus2lic {-ec -o /tmp/SOURIS.ec should_work/SOURIS.lus} -spawn ./ec2c -o /tmp/SOURIS.c /tmp/SOURIS.ec -PASS: ./ec2c {-o /tmp/SOURIS.c /tmp/SOURIS.ec} +spawn ./myec2c -o /tmp/SOURIS.c /tmp/SOURIS.ec +PASS: ./myec2c {-o /tmp/SOURIS.c /tmp/SOURIS.ec} +spawn ../utils/test_lus2lic_no_node should_work/SOURIS.lus ++ ./lus2lic should_work/SOURIS.lus -n SOURIS --gen-autotest -np +_SOURIS_env.lut generated. +_SOURIS_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/SOURIS.lus ++ ./lus2lic should_work/SOURIS.lus -n SOURIS -ec -o SOURIS.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:SOURIS.ec:SOURIS -rp env:lutin:_SOURIS_env.lut -rp oracle:v6:_SOURIS_oracle.lus:SOURIS_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/SOURIS.lus spawn ./lus2lic -o /tmp/param_node2.lic should_work/param_node2.lus PASS: ./lus2lic {-o /tmp/param_node2.lic should_work/param_node2.lus} spawn ./lus2lic -ec -o /tmp/param_node2.ec should_work/param_node2.lus PASS: ./lus2lic {-ec -o /tmp/param_node2.ec should_work/param_node2.lus} -spawn ./ec2c -o /tmp/param_node2.c /tmp/param_node2.ec -PASS: ./ec2c {-o /tmp/param_node2.c /tmp/param_node2.ec} +spawn ./myec2c -o /tmp/param_node2.c /tmp/param_node2.ec +PASS: ./myec2c {-o /tmp/param_node2.c /tmp/param_node2.ec} +spawn ../utils/test_lus2lic_no_node should_work/param_node2.lus ++ ./lus2lic should_work/param_node2.lus -n param_node2 --gen-autotest -np +_param_node2_env.lut generated. +_param_node2_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/param_node2.lus ++ ./lus2lic should_work/param_node2.lus -n param_node2 -ec -o param_node2.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:param_node2.ec:param_node2 -rp env:lutin:_param_node2_env.lut -rp oracle:v6:_param_node2_oracle.lus:param_node2_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/param_node2.lus spawn ./lus2lic -o /tmp/o2l_feux_compl.lic should_work/o2l_feux_compl.lus PASS: ./lus2lic {-o /tmp/o2l_feux_compl.lic should_work/o2l_feux_compl.lus} spawn ./lus2lic -ec -o /tmp/o2l_feux_compl.ec should_work/o2l_feux_compl.lus PASS: ./lus2lic {-ec -o /tmp/o2l_feux_compl.ec should_work/o2l_feux_compl.lus} -spawn ./ec2c -o /tmp/o2l_feux_compl.c /tmp/o2l_feux_compl.ec -PASS: ./ec2c {-o /tmp/o2l_feux_compl.c /tmp/o2l_feux_compl.ec} +spawn ./myec2c -o /tmp/o2l_feux_compl.c /tmp/o2l_feux_compl.ec +PASS: ./myec2c {-o /tmp/o2l_feux_compl.c /tmp/o2l_feux_compl.ec} +spawn ../utils/test_lus2lic_no_node should_work/o2l_feux_compl.lus ++ ./lus2lic should_work/o2l_feux_compl.lus -n o2l_feux_compl --gen-autotest -np +_o2l_feux_compl_env.lut generated. +_o2l_feux_compl_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/o2l_feux_compl.lus ++ ./lus2lic should_work/o2l_feux_compl.lus -n o2l_feux_compl -ec -o o2l_feux_compl.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:o2l_feux_compl.ec:o2l_feux_compl -rp env:lutin:_o2l_feux_compl_env.lut -rp oracle:v6:_o2l_feux_compl_oracle.lus:o2l_feux_compl_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/o2l_feux_compl.lus spawn ./lus2lic -o /tmp/model.lic should_work/model.lus PASS: ./lus2lic {-o /tmp/model.lic should_work/model.lus} spawn ./lus2lic -ec -o /tmp/model.ec should_work/model.lus PASS: ./lus2lic {-ec -o /tmp/model.ec should_work/model.lus} -spawn ./ec2c -o /tmp/model.c /tmp/model.ec -PASS: ./ec2c {-o /tmp/model.c /tmp/model.ec} +spawn ./myec2c -o /tmp/model.c /tmp/model.ec +PASS: ./myec2c {-o /tmp/model.c /tmp/model.ec} +spawn ../utils/test_lus2lic_no_node should_work/model.lus ++ ./lus2lic should_work/model.lus -n model --gen-autotest -np +*** Can not find package 'model' in the following packages: +*** 'p' +*** 'u' ++ echo Error +Error ++ exit 2 +FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/model.lus spawn ./lus2lic -o /tmp/matrice.lic should_work/matrice.lus PASS: ./lus2lic {-o /tmp/matrice.lic should_work/matrice.lus} spawn ./lus2lic -ec -o /tmp/matrice.ec should_work/matrice.lus PASS: ./lus2lic {-ec -o /tmp/matrice.ec should_work/matrice.lus} -spawn ./ec2c -o /tmp/matrice.c /tmp/matrice.ec -PASS: ./ec2c {-o /tmp/matrice.c /tmp/matrice.ec} +spawn ./myec2c -o /tmp/matrice.c /tmp/matrice.ec +PASS: ./myec2c {-o /tmp/matrice.c /tmp/matrice.ec} +spawn ../utils/test_lus2lic_no_node should_work/matrice.lus ++ ./lus2lic should_work/matrice.lus -n matrice --gen-autotest -np +_matrice_env.lut generated. +_matrice_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/matrice.lus ++ ./lus2lic should_work/matrice.lus -n matrice -ec -o matrice.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:matrice.ec:matrice -rp env:lutin:_matrice_env.lut -rp oracle:v6:_matrice_oracle.lus:matrice_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/matrice.lus spawn ./lus2lic -o /tmp/TIME_STABLE.lic should_work/TIME_STABLE.lus PASS: ./lus2lic {-o /tmp/TIME_STABLE.lic should_work/TIME_STABLE.lus} spawn ./lus2lic -ec -o /tmp/TIME_STABLE.ec should_work/TIME_STABLE.lus PASS: ./lus2lic {-ec -o /tmp/TIME_STABLE.ec should_work/TIME_STABLE.lus} -spawn ./ec2c -o /tmp/TIME_STABLE.c /tmp/TIME_STABLE.ec -PASS: ./ec2c {-o /tmp/TIME_STABLE.c /tmp/TIME_STABLE.ec} +spawn ./myec2c -o /tmp/TIME_STABLE.c /tmp/TIME_STABLE.ec +PASS: ./myec2c {-o /tmp/TIME_STABLE.c /tmp/TIME_STABLE.ec} +spawn ../utils/test_lus2lic_no_node should_work/TIME_STABLE.lus ++ ./lus2lic should_work/TIME_STABLE.lus -n TIME_STABLE --gen-autotest -np +_TIME_STABLE_env.lut generated. +_TIME_STABLE_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/TIME_STABLE.lus ++ ./lus2lic should_work/TIME_STABLE.lus -n TIME_STABLE -ec -o TIME_STABLE.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:TIME_STABLE.ec:TIME_STABLE -rp env:lutin:_TIME_STABLE_env.lut -rp oracle:v6:_TIME_STABLE_oracle.lus:TIME_STABLE_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/TIME_STABLE.lus spawn ./lus2lic -o /tmp/cpt.lic should_work/cpt.lus PASS: ./lus2lic {-o /tmp/cpt.lic should_work/cpt.lus} spawn ./lus2lic -ec -o /tmp/cpt.ec should_work/cpt.lus PASS: ./lus2lic {-ec -o /tmp/cpt.ec should_work/cpt.lus} -spawn ./ec2c -o /tmp/cpt.c /tmp/cpt.ec -PASS: ./ec2c {-o /tmp/cpt.c /tmp/cpt.ec} +spawn ./myec2c -o /tmp/cpt.c /tmp/cpt.ec +PASS: ./myec2c {-o /tmp/cpt.c /tmp/cpt.ec} +spawn ../utils/test_lus2lic_no_node should_work/cpt.lus ++ ./lus2lic should_work/cpt.lus -n cpt --gen-autotest -np +_cpt_env.lut generated. +_cpt_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/cpt.lus ++ ./lus2lic should_work/cpt.lus -n cpt -ec -o cpt.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:cpt.ec:cpt -rp env:lutin:_cpt_env.lut -rp oracle:v6:_cpt_oracle.lus:cpt_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/cpt.lus spawn ./lus2lic -o /tmp/multipar.lic should_work/multipar.lus PASS: ./lus2lic {-o /tmp/multipar.lic should_work/multipar.lus} spawn ./lus2lic -ec -o /tmp/multipar.ec should_work/multipar.lus PASS: ./lus2lic {-ec -o /tmp/multipar.ec should_work/multipar.lus} -spawn ./ec2c -o /tmp/multipar.c /tmp/multipar.ec -PASS: ./ec2c {-o /tmp/multipar.c /tmp/multipar.ec} +spawn ./myec2c -o /tmp/multipar.c /tmp/multipar.ec +PASS: ./myec2c {-o /tmp/multipar.c /tmp/multipar.ec} +spawn ../utils/test_lus2lic_no_node should_work/multipar.lus ++ ./lus2lic should_work/multipar.lus -n multipar --gen-autotest -np +_multipar_env.lut generated. +_multipar_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/multipar.lus ++ ./lus2lic should_work/multipar.lus -n multipar -ec -o multipar.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:multipar.ec:multipar -rp env:lutin:_multipar_env.lut -rp oracle:v6:_multipar_oracle.lus:multipar_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +Failure occured in lurette: int_of_string +Lurette launched a process that failed (exit 2). + +break signal catched + +lurettetop: bye! ++ echo error +error ++ exit 2 +FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/multipar.lus spawn ./lus2lic -o /tmp/activation_ec.lic should_work/activation_ec.lus PASS: ./lus2lic {-o /tmp/activation_ec.lic should_work/activation_ec.lus} spawn ./lus2lic -ec -o /tmp/activation_ec.ec should_work/activation_ec.lus PASS: ./lus2lic {-ec -o /tmp/activation_ec.ec should_work/activation_ec.lus} -spawn ./ec2c -o /tmp/activation_ec.c /tmp/activation_ec.ec -PASS: ./ec2c {-o /tmp/activation_ec.c /tmp/activation_ec.ec} +spawn ./myec2c -o /tmp/activation_ec.c /tmp/activation_ec.ec +PASS: ./myec2c {-o /tmp/activation_ec.c /tmp/activation_ec.ec} +spawn ../utils/test_lus2lic_no_node should_work/activation_ec.lus ++ ./lus2lic should_work/activation_ec.lus -n activation_ec --gen-autotest -np +_activation_ec_env.lut generated. +_activation_ec_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/activation_ec.lus ++ ./lus2lic should_work/activation_ec.lus -n activation_ec -ec -o activation_ec.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:activation_ec.ec:activation_ec -rp env:lutin:_activation_ec_env.lut -rp oracle:v6:_activation_ec_oracle.lus:activation_ec_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/activation_ec.lus spawn ./lus2lic -o /tmp/impl_priority.lic should_work/impl_priority.lus PASS: ./lus2lic {-o /tmp/impl_priority.lic should_work/impl_priority.lus} spawn ./lus2lic -ec -o /tmp/impl_priority.ec should_work/impl_priority.lus PASS: ./lus2lic {-ec -o /tmp/impl_priority.ec should_work/impl_priority.lus} -spawn ./ec2c -o /tmp/impl_priority.c /tmp/impl_priority.ec -PASS: ./ec2c {-o /tmp/impl_priority.c /tmp/impl_priority.ec} +spawn ./myec2c -o /tmp/impl_priority.c /tmp/impl_priority.ec +PASS: ./myec2c {-o /tmp/impl_priority.c /tmp/impl_priority.ec} +spawn ../utils/test_lus2lic_no_node should_work/impl_priority.lus ++ ./lus2lic should_work/impl_priority.lus -n impl_priority --gen-autotest -np +_impl_priority_env.lut generated. +_impl_priority_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/impl_priority.lus ++ ./lus2lic should_work/impl_priority.lus -n impl_priority -ec -o impl_priority.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:impl_priority.ec:impl_priority -rp env:lutin:_impl_priority_env.lut -rp oracle:v6:_impl_priority_oracle.lus:impl_priority_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/impl_priority.lus spawn ./lus2lic -o /tmp/exclusion.lic should_work/exclusion.lus PASS: ./lus2lic {-o /tmp/exclusion.lic should_work/exclusion.lus} spawn ./lus2lic -ec -o /tmp/exclusion.ec should_work/exclusion.lus PASS: ./lus2lic {-ec -o /tmp/exclusion.ec should_work/exclusion.lus} -spawn ./ec2c -o /tmp/exclusion.c /tmp/exclusion.ec -PASS: ./ec2c {-o /tmp/exclusion.c /tmp/exclusion.ec} +spawn ./myec2c -o /tmp/exclusion.c /tmp/exclusion.ec +PASS: ./myec2c {-o /tmp/exclusion.c /tmp/exclusion.ec} +spawn ../utils/test_lus2lic_no_node should_work/exclusion.lus ++ ./lus2lic should_work/exclusion.lus -n exclusion --gen-autotest -np +_exclusion_env.lut generated. +_exclusion_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/exclusion.lus ++ ./lus2lic should_work/exclusion.lus -n exclusion -ec -o exclusion.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:exclusion.ec:exclusion -rp env:lutin:_exclusion_env.lut -rp oracle:v6:_exclusion_oracle.lus:exclusion_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/exclusion.lus spawn ./lus2lic -o /tmp/ply01.lic should_work/ply01.lus PASS: ./lus2lic {-o /tmp/ply01.lic should_work/ply01.lus} spawn ./lus2lic -ec -o /tmp/ply01.ec should_work/ply01.lus PASS: ./lus2lic {-ec -o /tmp/ply01.ec should_work/ply01.lus} -spawn ./ec2c -o /tmp/ply01.c /tmp/ply01.ec -PASS: ./ec2c {-o /tmp/ply01.c /tmp/ply01.ec} +spawn ./myec2c -o /tmp/ply01.c /tmp/ply01.ec +PASS: ./myec2c {-o /tmp/ply01.c /tmp/ply01.ec} +spawn ../utils/test_lus2lic_no_node should_work/ply01.lus ++ ./lus2lic should_work/ply01.lus -n ply01 --gen-autotest -np +_ply01_env.lut generated. +_ply01_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/ply01.lus ++ ./lus2lic should_work/ply01.lus -n ply01 -ec -o ply01.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:ply01.ec:ply01 -rp env:lutin:_ply01_env.lut -rp oracle:v6:_ply01_oracle.lus:ply01_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/ply01.lus spawn ./lus2lic -o /tmp/consensus.lic should_work/consensus.lus PASS: ./lus2lic {-o /tmp/consensus.lic should_work/consensus.lus} spawn ./lus2lic -ec -o /tmp/consensus.ec should_work/consensus.lus PASS: ./lus2lic {-ec -o /tmp/consensus.ec should_work/consensus.lus} -spawn ./ec2c -o /tmp/consensus.c /tmp/consensus.ec -PASS: ./ec2c {-o /tmp/consensus.c /tmp/consensus.ec} +spawn ./myec2c -o /tmp/consensus.c /tmp/consensus.ec +PASS: ./myec2c {-o /tmp/consensus.c /tmp/consensus.ec} +spawn ../utils/test_lus2lic_no_node should_work/consensus.lus ++ ./lus2lic should_work/consensus.lus -n consensus --gen-autotest -np +_consensus_env.lut generated. +_consensus_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/consensus.lus ++ ./lus2lic should_work/consensus.lus -n consensus -ec -o consensus.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:consensus.ec:consensus -rp env:lutin:_consensus_env.lut -rp oracle:v6:_consensus_oracle.lus:consensus_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/consensus.lus spawn ./lus2lic -o /tmp/activation2.lic should_work/activation2.lus PASS: ./lus2lic {-o /tmp/activation2.lic should_work/activation2.lus} spawn ./lus2lic -ec -o /tmp/activation2.ec should_work/activation2.lus PASS: ./lus2lic {-ec -o /tmp/activation2.ec should_work/activation2.lus} -spawn ./ec2c -o /tmp/activation2.c /tmp/activation2.ec -PASS: ./ec2c {-o /tmp/activation2.c /tmp/activation2.ec} +spawn ./myec2c -o /tmp/activation2.c /tmp/activation2.ec +PASS: ./myec2c {-o /tmp/activation2.c /tmp/activation2.ec} +spawn ../utils/test_lus2lic_no_node should_work/activation2.lus ++ ./lus2lic should_work/activation2.lus -n activation2 --gen-autotest -np +Error. A combinational cycle been detected in file "/home/jahier/lus2lic/test/should_work/activation2.lus", line 11, col 5 to 15, token 'activation2' on + v07 = activation2::up1(scie) + scie = Lustre::arrow(0, v11) + v07 = activation2::up1(scie) + v09 = Lustre::if(go_up, v07, v08) + v11 = Lustre::if(evt, v09, v10) + +Hint: try to use --expand-nodes. + ++ echo Error +Error ++ exit 2 +FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/activation2.lus spawn ./lus2lic -o /tmp/type_decl.lic should_work/type_decl.lus PASS: ./lus2lic {-o /tmp/type_decl.lic should_work/type_decl.lus} spawn ./lus2lic -ec -o /tmp/type_decl.ec should_work/type_decl.lus PASS: ./lus2lic {-ec -o /tmp/type_decl.ec should_work/type_decl.lus} -spawn ./ec2c -o /tmp/type_decl.c /tmp/type_decl.ec -PASS: ./ec2c {-o /tmp/type_decl.c /tmp/type_decl.ec} +spawn ./myec2c -o /tmp/type_decl.c /tmp/type_decl.ec +PASS: ./myec2c {-o /tmp/type_decl.c /tmp/type_decl.ec} +spawn ../utils/test_lus2lic_no_node should_work/type_decl.lus ++ ./lus2lic should_work/type_decl.lus -n type_decl --gen-autotest -np +_type_decl_env.lut generated. +_type_decl_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/type_decl.lus ++ ./lus2lic should_work/type_decl.lus -n type_decl -ec -o type_decl.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:type_decl.ec:type_decl -rp env:lutin:_type_decl_env.lut -rp oracle:v6:_type_decl_oracle.lus:type_decl_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/type_decl.lus spawn ./lus2lic -o /tmp/import1.lic should_work/import1.lus PASS: ./lus2lic {-o /tmp/import1.lic should_work/import1.lus} spawn ./lus2lic -ec -o /tmp/import1.ec should_work/import1.lus PASS: ./lus2lic {-ec -o /tmp/import1.ec should_work/import1.lus} -spawn ./ec2c -o /tmp/import1.c /tmp/import1.ec -PASS: ./ec2c {-o /tmp/import1.c /tmp/import1.ec} +spawn ./myec2c -o /tmp/import1.c /tmp/import1.ec +PASS: ./myec2c {-o /tmp/import1.c /tmp/import1.ec} +spawn ../utils/test_lus2lic_no_node should_work/import1.lus ++ ./lus2lic should_work/import1.lus -n import1 --gen-autotest -np +*** The soc of import1::imp is not defined. FINISH ME! +Extern node not yet supported, sorry + +*** oops: lus2lic internal error + File "src/lic2soc.ml", line 897, column 14 +*** when compiling lustre program should_work/import1.lus + +*** You migth want to sent a bug report to jahier@imag.fr ++ echo Error +Error ++ exit 2 +FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/import1.lus spawn ./lus2lic -o /tmp/pack1.lic should_work/pack1.lus PASS: ./lus2lic {-o /tmp/pack1.lic should_work/pack1.lus} spawn ./lus2lic -ec -o /tmp/pack1.ec should_work/pack1.lus PASS: ./lus2lic {-ec -o /tmp/pack1.ec should_work/pack1.lus} -spawn ./ec2c -o /tmp/pack1.c /tmp/pack1.ec -PASS: ./ec2c {-o /tmp/pack1.c /tmp/pack1.ec} +spawn ./myec2c -o /tmp/pack1.c /tmp/pack1.ec +PASS: ./myec2c {-o /tmp/pack1.c /tmp/pack1.ec} +spawn ../utils/test_lus2lic_no_node should_work/pack1.lus ++ ./lus2lic should_work/pack1.lus -n pack1 --gen-autotest -np +_pack1_env.lut generated. +_pack1_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/pack1.lus ++ ./lus2lic should_work/pack1.lus -n pack1 -ec -o pack1.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:pack1.ec:pack1 -rp env:lutin:_pack1_env.lut -rp oracle:v6:_pack1_oracle.lus:pack1_oracle -go -l 10 -ns2c --stop-on-oracle-error +Error in lurette: Parsing.Parse_error +Lurette launched a process that failed (exit 2). + +break signal catched + +lurettetop: bye! ++ echo error +error ++ exit 2 +FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/pack1.lus spawn ./lus2lic -o /tmp/bob.lic should_work/bob.lus PASS: ./lus2lic {-o /tmp/bob.lic should_work/bob.lus} spawn ./lus2lic -ec -o /tmp/bob.ec should_work/bob.lus PASS: ./lus2lic {-ec -o /tmp/bob.ec should_work/bob.lus} -spawn ./ec2c -o /tmp/bob.c /tmp/bob.ec -PASS: ./ec2c {-o /tmp/bob.c /tmp/bob.ec} +spawn ./myec2c -o /tmp/bob.c /tmp/bob.ec +PASS: ./myec2c {-o /tmp/bob.c /tmp/bob.ec} +spawn ../utils/test_lus2lic_no_node should_work/bob.lus ++ ./lus2lic should_work/bob.lus -n bob --gen-autotest -np +_bob_env.lut generated. +_bob_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/bob.lus ++ ./lus2lic should_work/bob.lus -n bob -ec -o bob.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:bob.ec:bob -rp env:lutin:_bob_env.lut -rp oracle:v6:_bob_oracle.lus:bob_oracle -go -l 10 -ns2c --stop-on-oracle-error +Error in lurette: Lv6errors.Compile_error(_, "\n*** clock error: The two following clocks are not compatible:\n***\t on base\n***\t on i on base\n") +Lurette launched a process that failed (exit 2). + +break signal catched + +lurettetop: bye! ++ echo error +error ++ exit 2 +FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/bob.lus spawn ./lus2lic -o /tmp/notTwo.lic should_work/notTwo.lus PASS: ./lus2lic {-o /tmp/notTwo.lic should_work/notTwo.lus} spawn ./lus2lic -ec -o /tmp/notTwo.ec should_work/notTwo.lus PASS: ./lus2lic {-ec -o /tmp/notTwo.ec should_work/notTwo.lus} -spawn ./ec2c -o /tmp/notTwo.c /tmp/notTwo.ec -PASS: ./ec2c {-o /tmp/notTwo.c /tmp/notTwo.ec} -spawn ./lus2lic -o /tmp/struct.lic should_work/struct.lus -PASS: ./lus2lic {-o /tmp/struct.lic should_work/struct.lus} -spawn ./lus2lic -ec -o /tmp/struct.ec should_work/struct.lus -PASS: ./lus2lic {-ec -o /tmp/struct.ec should_work/struct.lus} -spawn ./ec2c -o /tmp/struct.c /tmp/struct.ec -PASS: ./ec2c {-o /tmp/struct.c /tmp/struct.ec} +spawn ./myec2c -o /tmp/notTwo.c /tmp/notTwo.ec +PASS: ./myec2c {-o /tmp/notTwo.c /tmp/notTwo.ec} +spawn ../utils/test_lus2lic_no_node should_work/notTwo.lus ++ ./lus2lic should_work/notTwo.lus -n notTwo --gen-autotest -np +_notTwo_env.lut generated. +_notTwo_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/notTwo.lus ++ ./lus2lic should_work/notTwo.lus -n notTwo -ec -o notTwo.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:notTwo.ec:notTwo -rp env:lutin:_notTwo_env.lut -rp oracle:v6:_notTwo_oracle.lus:notTwo_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/notTwo.lus spawn ./lus2lic -o /tmp/stopwatch.lic should_work/stopwatch.lus PASS: ./lus2lic {-o /tmp/stopwatch.lic should_work/stopwatch.lus} spawn ./lus2lic -ec -o /tmp/stopwatch.ec should_work/stopwatch.lus PASS: ./lus2lic {-ec -o /tmp/stopwatch.ec should_work/stopwatch.lus} -spawn ./ec2c -o /tmp/stopwatch.c /tmp/stopwatch.ec -PASS: ./ec2c {-o /tmp/stopwatch.c /tmp/stopwatch.ec} +spawn ./myec2c -o /tmp/stopwatch.c /tmp/stopwatch.ec +PASS: ./myec2c {-o /tmp/stopwatch.c /tmp/stopwatch.ec} +spawn ../utils/test_lus2lic_no_node should_work/stopwatch.lus ++ ./lus2lic should_work/stopwatch.lus -n stopwatch --gen-autotest -np +_stopwatch_env.lut generated. +_stopwatch_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/stopwatch.lus ++ ./lus2lic should_work/stopwatch.lus -n stopwatch -ec -o stopwatch.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:stopwatch.ec:stopwatch -rp env:lutin:_stopwatch_env.lut -rp oracle:v6:_stopwatch_oracle.lus:stopwatch_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/stopwatch.lus +spawn ./lus2lic -o /tmp/test_condact.lic should_work/test_condact.lus +PASS: ./lus2lic {-o /tmp/test_condact.lic should_work/test_condact.lus} +spawn ./lus2lic -ec -o /tmp/test_condact.ec should_work/test_condact.lus +PASS: ./lus2lic {-ec -o /tmp/test_condact.ec should_work/test_condact.lus} +spawn ./myec2c -o /tmp/test_condact.c /tmp/test_condact.ec +PASS: ./myec2c {-o /tmp/test_condact.c /tmp/test_condact.ec} +spawn ../utils/test_lus2lic_no_node should_work/test_condact.lus ++ ./lus2lic should_work/test_condact.lus -n test_condact --gen-autotest -np +_test_condact_env.lut generated. +_test_condact_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/test_condact.lus ++ ./lus2lic should_work/test_condact.lus -n test_condact -ec -o test_condact.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:test_condact.ec:test_condact -rp env:lutin:_test_condact_env.lut -rp oracle:v6:_test_condact_oracle.lus:test_condact_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. + +*** The oracle returned false at step 2 +Oracle numeric outputs: + x_bis=3772 + y_bis=2 + z_bis=-25806 +Oracle inputs: + c=t + a=1117 + b=2655 + x=3772 + y=3 + z=-27322 + +*** The oracle returned false at step 2 +Oracle numeric outputs: + x_bis=3772 + y_bis=2 + z_bis=-25806 +Oracle inputs: + c=t + a=1117 + b=2655 + x=3772 + y=3 + z=-27322 + +Lurette launched a process that failed (exit 2). + +break signal catched + +lurettetop: bye! ++ echo error +error ++ exit 2 +FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/test_condact.lus spawn ./lus2lic -o /tmp/contractForElementSelectionInArray.lic should_work/contractForElementSelectionInArray.lus PASS: ./lus2lic {-o /tmp/contractForElementSelectionInArray.lic should_work/contractForElementSelectionInArray.lus} spawn ./lus2lic -ec -o /tmp/contractForElementSelectionInArray.ec should_work/contractForElementSelectionInArray.lus PASS: ./lus2lic {-ec -o /tmp/contractForElementSelectionInArray.ec should_work/contractForElementSelectionInArray.lus} -spawn ./ec2c -o /tmp/contractForElementSelectionInArray.c /tmp/contractForElementSelectionInArray.ec -PASS: ./ec2c {-o /tmp/contractForElementSelectionInArray.c /tmp/contractForElementSelectionInArray.ec} +spawn ./myec2c -o /tmp/contractForElementSelectionInArray.c /tmp/contractForElementSelectionInArray.ec +PASS: ./myec2c {-o /tmp/contractForElementSelectionInArray.c /tmp/contractForElementSelectionInArray.ec} +spawn ../utils/test_lus2lic_no_node should_work/contractForElementSelectionInArray.lus ++ ./lus2lic should_work/contractForElementSelectionInArray.lus -n contractForElementSelectionInArray --gen-autotest -np +_contractForElementSelectionInArray_env.lut generated. +_contractForElementSelectionInArray_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/contractForElementSelectionInArray.lus ++ ./lus2lic should_work/contractForElementSelectionInArray.lus -n contractForElementSelectionInArray -ec -o contractForElementSelectionInArray.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:contractForElementSelectionInArray.ec:contractForElementSelectionInArray -rp env:lutin:_contractForElementSelectionInArray_env.lut -rp oracle:v6:_contractForElementSelectionInArray_oracle.lus:contractForElementSelectionInArray_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/contractForElementSelectionInArray.lus spawn ./lus2lic -o /tmp/iterFibo.lic should_work/iterFibo.lus PASS: ./lus2lic {-o /tmp/iterFibo.lic should_work/iterFibo.lus} spawn ./lus2lic -ec -o /tmp/iterFibo.ec should_work/iterFibo.lus PASS: ./lus2lic {-ec -o /tmp/iterFibo.ec should_work/iterFibo.lus} -spawn ./ec2c -o /tmp/iterFibo.c /tmp/iterFibo.ec -PASS: ./ec2c {-o /tmp/iterFibo.c /tmp/iterFibo.ec} +spawn ./myec2c -o /tmp/iterFibo.c /tmp/iterFibo.ec +PASS: ./myec2c {-o /tmp/iterFibo.c /tmp/iterFibo.ec} +spawn ../utils/test_lus2lic_no_node should_work/iterFibo.lus ++ ./lus2lic should_work/iterFibo.lus -n iterFibo --gen-autotest -np +_iterFibo_env.lut generated. +_iterFibo_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/iterFibo.lus ++ ./lus2lic should_work/iterFibo.lus -n iterFibo -ec -o iterFibo.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:iterFibo.ec:iterFibo -rp env:lutin:_iterFibo_env.lut -rp oracle:v6:_iterFibo_oracle.lus:iterFibo_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/iterFibo.lus spawn ./lus2lic -o /tmp/morel2.lic should_work/morel2.lus PASS: ./lus2lic {-o /tmp/morel2.lic should_work/morel2.lus} spawn ./lus2lic -ec -o /tmp/morel2.ec should_work/morel2.lus PASS: ./lus2lic {-ec -o /tmp/morel2.ec should_work/morel2.lus} -spawn ./ec2c -o /tmp/morel2.c /tmp/morel2.ec -PASS: ./ec2c {-o /tmp/morel2.c /tmp/morel2.ec} +spawn ./myec2c -o /tmp/morel2.c /tmp/morel2.ec +PASS: ./myec2c {-o /tmp/morel2.c /tmp/morel2.ec} +spawn ../utils/test_lus2lic_no_node should_work/morel2.lus ++ ./lus2lic should_work/morel2.lus -n morel2 --gen-autotest -np +_morel2_env.lut generated. +_morel2_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/morel2.lus ++ ./lus2lic should_work/morel2.lus -n morel2 -ec -o morel2.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:morel2.ec:morel2 -rp env:lutin:_morel2_env.lut -rp oracle:v6:_morel2_oracle.lus:morel2_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/morel2.lus spawn ./lus2lic -o /tmp/minmax1.lic should_work/minmax1.lus PASS: ./lus2lic {-o /tmp/minmax1.lic should_work/minmax1.lus} spawn ./lus2lic -ec -o /tmp/minmax1.ec should_work/minmax1.lus PASS: ./lus2lic {-ec -o /tmp/minmax1.ec should_work/minmax1.lus} -spawn ./ec2c -o /tmp/minmax1.c /tmp/minmax1.ec -PASS: ./ec2c {-o /tmp/minmax1.c /tmp/minmax1.ec} +spawn ./myec2c -o /tmp/minmax1.c /tmp/minmax1.ec +PASS: ./myec2c {-o /tmp/minmax1.c /tmp/minmax1.ec} +spawn ../utils/test_lus2lic_no_node should_work/minmax1.lus ++ ./lus2lic should_work/minmax1.lus -n minmax1 --gen-autotest -np +_minmax1_env.lut generated. +_minmax1_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/minmax1.lus ++ ./lus2lic should_work/minmax1.lus -n minmax1 -ec -o minmax1.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:minmax1.ec:minmax1 -rp env:lutin:_minmax1_env.lut -rp oracle:v6:_minmax1_oracle.lus:minmax1_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/minmax1.lus spawn ./lus2lic -o /tmp/aa.lic should_work/aa.lus PASS: ./lus2lic {-o /tmp/aa.lic should_work/aa.lus} spawn ./lus2lic -ec -o /tmp/aa.ec should_work/aa.lus PASS: ./lus2lic {-ec -o /tmp/aa.ec should_work/aa.lus} -spawn ./ec2c -o /tmp/aa.c /tmp/aa.ec -PASS: ./ec2c {-o /tmp/aa.c /tmp/aa.ec} +spawn ./myec2c -o /tmp/aa.c /tmp/aa.ec +PASS: ./myec2c {-o /tmp/aa.c /tmp/aa.ec} +spawn ../utils/test_lus2lic_no_node should_work/aa.lus ++ ./lus2lic should_work/aa.lus -n aa --gen-autotest -np +_aa_env.lut generated. +_aa_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/aa.lus ++ ./lus2lic should_work/aa.lus -n aa -ec -o aa.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:aa.ec:aa -rp env:lutin:_aa_env.lut -rp oracle:v6:_aa_oracle.lus:aa_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/aa.lus spawn ./lus2lic -o /tmp/mouse3.lic should_work/mouse3.lus PASS: ./lus2lic {-o /tmp/mouse3.lic should_work/mouse3.lus} spawn ./lus2lic -ec -o /tmp/mouse3.ec should_work/mouse3.lus PASS: ./lus2lic {-ec -o /tmp/mouse3.ec should_work/mouse3.lus} -spawn ./ec2c -o /tmp/mouse3.c /tmp/mouse3.ec -PASS: ./ec2c {-o /tmp/mouse3.c /tmp/mouse3.ec} +spawn ./myec2c -o /tmp/mouse3.c /tmp/mouse3.ec +PASS: ./myec2c {-o /tmp/mouse3.c /tmp/mouse3.ec} +spawn ../utils/test_lus2lic_no_node should_work/mouse3.lus ++ ./lus2lic should_work/mouse3.lus -n mouse3 --gen-autotest -np +_mouse3_env.lut generated. +_mouse3_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/mouse3.lus ++ ./lus2lic should_work/mouse3.lus -n mouse3 -ec -o mouse3.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:mouse3.ec:mouse3 -rp env:lutin:_mouse3_env.lut -rp oracle:v6:_mouse3_oracle.lus:mouse3_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/mouse3.lus spawn ./lus2lic -o /tmp/ex.lic should_work/ex.lus PASS: ./lus2lic {-o /tmp/ex.lic should_work/ex.lus} spawn ./lus2lic -ec -o /tmp/ex.ec should_work/ex.lus PASS: ./lus2lic {-ec -o /tmp/ex.ec should_work/ex.lus} -spawn ./ec2c -o /tmp/ex.c /tmp/ex.ec -PASS: ./ec2c {-o /tmp/ex.c /tmp/ex.ec} +spawn ./myec2c -o /tmp/ex.c /tmp/ex.ec +PASS: ./myec2c {-o /tmp/ex.c /tmp/ex.ec} +spawn ../utils/test_lus2lic_no_node should_work/ex.lus ++ ./lus2lic should_work/ex.lus -n ex --gen-autotest -np +_ex_env.lut generated. +_ex_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/ex.lus ++ ./lus2lic should_work/ex.lus -n ex -ec -o ex.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:ex.ec:ex -rp env:lutin:_ex_env.lut -rp oracle:v6:_ex_oracle.lus:ex_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/ex.lus spawn ./lus2lic -o /tmp/xxx.lic should_work/xxx.lus PASS: ./lus2lic {-o /tmp/xxx.lic should_work/xxx.lus} spawn ./lus2lic -ec -o /tmp/xxx.ec should_work/xxx.lus PASS: ./lus2lic {-ec -o /tmp/xxx.ec should_work/xxx.lus} -spawn ./ec2c -o /tmp/xxx.c /tmp/xxx.ec -PASS: ./ec2c {-o /tmp/xxx.c /tmp/xxx.ec} -spawn ./lus2lic -o /tmp/aux1.lic should_work/aux1.lus -PASS: ./lus2lic {-o /tmp/aux1.lic should_work/aux1.lus} -spawn ./lus2lic -ec -o /tmp/aux1.ec should_work/aux1.lus -PASS: ./lus2lic {-ec -o /tmp/aux1.ec should_work/aux1.lus} -spawn ./ec2c -o /tmp/aux1.c /tmp/aux1.ec -PASS: ./ec2c {-o /tmp/aux1.c /tmp/aux1.ec} +spawn ./myec2c -o /tmp/xxx.c /tmp/xxx.ec +PASS: ./myec2c {-o /tmp/xxx.c /tmp/xxx.ec} +spawn ../utils/test_lus2lic_no_node should_work/xxx.lus ++ ./lus2lic should_work/xxx.lus -n xxx --gen-autotest -np +_xxx_env.lut generated. +_xxx_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/xxx.lus ++ ./lus2lic should_work/xxx.lus -n xxx -ec -o xxx.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:xxx.ec:xxx -rp env:lutin:_xxx_env.lut -rp oracle:v6:_xxx_oracle.lus:xxx_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/xxx.lus spawn ./lus2lic -o /tmp/moyenne.lic should_work/moyenne.lus PASS: ./lus2lic {-o /tmp/moyenne.lic should_work/moyenne.lus} spawn ./lus2lic -ec -o /tmp/moyenne.ec should_work/moyenne.lus PASS: ./lus2lic {-ec -o /tmp/moyenne.ec should_work/moyenne.lus} -spawn ./ec2c -o /tmp/moyenne.c /tmp/moyenne.ec -PASS: ./ec2c {-o /tmp/moyenne.c /tmp/moyenne.ec} +spawn ./myec2c -o /tmp/moyenne.c /tmp/moyenne.ec +PASS: ./myec2c {-o /tmp/moyenne.c /tmp/moyenne.ec} +spawn ../utils/test_lus2lic_no_node should_work/moyenne.lus ++ ./lus2lic should_work/moyenne.lus -n moyenne --gen-autotest -np +_moyenne_env.lut generated. +_moyenne_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/moyenne.lus ++ ./lus2lic should_work/moyenne.lus -n moyenne -ec -o moyenne.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:moyenne.ec:moyenne -rp env:lutin:_moyenne_env.lut -rp oracle:v6:_moyenne_oracle.lus:moyenne_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/moyenne.lus spawn ./lus2lic -o /tmp/activation1.lic should_work/activation1.lus PASS: ./lus2lic {-o /tmp/activation1.lic should_work/activation1.lus} spawn ./lus2lic -ec -o /tmp/activation1.ec should_work/activation1.lus PASS: ./lus2lic {-ec -o /tmp/activation1.ec should_work/activation1.lus} -spawn ./ec2c -o /tmp/activation1.c /tmp/activation1.ec -PASS: ./ec2c {-o /tmp/activation1.c /tmp/activation1.ec} +spawn ./myec2c -o /tmp/activation1.c /tmp/activation1.ec +PASS: ./myec2c {-o /tmp/activation1.c /tmp/activation1.ec} +spawn ../utils/test_lus2lic_no_node should_work/activation1.lus ++ ./lus2lic should_work/activation1.lus -n activation1 --gen-autotest -np +Error. A combinational cycle been detected in file "/home/jahier/lus2lic/test/should_work/activation1.lus", line 11, col 5 to 15, token 'activation1' on + v07 = activation1::up1(scie) + v10 = Lustre::arrow(0, v09) + v07 = activation1::up1(scie) + scie = Lustre::if(reset, 0, v10) + v09 = Lustre::if(go_up, v07, v08) + +Hint: try to use --expand-nodes. + ++ echo Error +Error ++ exit 2 +FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/activation1.lus spawn ./lus2lic -o /tmp/call01.lic should_work/call01.lus PASS: ./lus2lic {-o /tmp/call01.lic should_work/call01.lus} spawn ./lus2lic -ec -o /tmp/call01.ec should_work/call01.lus PASS: ./lus2lic {-ec -o /tmp/call01.ec should_work/call01.lus} -spawn ./ec2c -o /tmp/call01.c /tmp/call01.ec -PASS: ./ec2c {-o /tmp/call01.c /tmp/call01.ec} -spawn ./lus2lic -o /tmp/lecteur.lic should_work/lecteur.lus -PASS: ./lus2lic {-o /tmp/lecteur.lic should_work/lecteur.lus} -spawn ./lus2lic -ec -o /tmp/lecteur.ec should_work/lecteur.lus -PASS: ./lus2lic {-ec -o /tmp/lecteur.ec should_work/lecteur.lus} -spawn ./ec2c -o /tmp/lecteur.c /tmp/lecteur.ec -PASS: ./ec2c {-o /tmp/lecteur.c /tmp/lecteur.ec} +spawn ./myec2c -o /tmp/call01.c /tmp/call01.ec +PASS: ./myec2c {-o /tmp/call01.c /tmp/call01.ec} +spawn ../utils/test_lus2lic_no_node should_work/call01.lus ++ ./lus2lic should_work/call01.lus -n call01 --gen-autotest -np +_call01_env.lut generated. +_call01_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/call01.lus ++ ./lus2lic should_work/call01.lus -n call01 -ec -o call01.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:call01.ec:call01 -rp env:lutin:_call01_env.lut -rp oracle:v6:_call01_oracle.lus:call01_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/call01.lus spawn ./lus2lic -o /tmp/bug.lic should_work/bug.lus PASS: ./lus2lic {-o /tmp/bug.lic should_work/bug.lus} spawn ./lus2lic -ec -o /tmp/bug.ec should_work/bug.lus PASS: ./lus2lic {-ec -o /tmp/bug.ec should_work/bug.lus} -spawn ./ec2c -o /tmp/bug.c /tmp/bug.ec -PASS: ./ec2c {-o /tmp/bug.c /tmp/bug.ec} +spawn ./myec2c -o /tmp/bug.c /tmp/bug.ec +PASS: ./myec2c {-o /tmp/bug.c /tmp/bug.ec} +spawn ../utils/test_lus2lic_no_node should_work/bug.lus ++ ./lus2lic should_work/bug.lus -n bug --gen-autotest -np +_bug_env.lut generated. +_bug_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/bug.lus ++ ./lus2lic should_work/bug.lus -n bug -ec -o bug.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:bug.ec:bug -rp env:lutin:_bug_env.lut -rp oracle:v6:_bug_oracle.lus:bug_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/bug.lus spawn ./lus2lic -o /tmp/ck4.lic should_work/ck4.lus PASS: ./lus2lic {-o /tmp/ck4.lic should_work/ck4.lus} spawn ./lus2lic -ec -o /tmp/ck4.ec should_work/ck4.lus PASS: ./lus2lic {-ec -o /tmp/ck4.ec should_work/ck4.lus} -spawn ./ec2c -o /tmp/ck4.c /tmp/ck4.ec -PASS: ./ec2c {-o /tmp/ck4.c /tmp/ck4.ec} +spawn ./myec2c -o /tmp/ck4.c /tmp/ck4.ec +PASS: ./myec2c {-o /tmp/ck4.c /tmp/ck4.ec} +spawn ../utils/test_lus2lic_no_node should_work/ck4.lus ++ ./lus2lic should_work/ck4.lus -n ck4 --gen-autotest -np +_ck4_env.lut generated. +_ck4_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/ck4.lus ++ ./lus2lic should_work/ck4.lus -n ck4 -ec -o ck4.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:ck4.ec:ck4 -rp env:lutin:_ck4_env.lut -rp oracle:v6:_ck4_oracle.lus:ck4_oracle -go -l 10 -ns2c --stop-on-oracle-error +Error in lurette: Lv6errors.Compile_error(_, "\n*** clock error: The two following clocks are not compatible:\n***\t on base\n***\t on b'a0\n") +Lurette launched a process that failed (exit 2). + +break signal catched + +lurettetop: bye! ++ echo error +error ++ exit 2 +FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/ck4.lus spawn ./lus2lic -o /tmp/map_red_iter.lic should_work/map_red_iter.lus PASS: ./lus2lic {-o /tmp/map_red_iter.lic should_work/map_red_iter.lus} spawn ./lus2lic -ec -o /tmp/map_red_iter.ec should_work/map_red_iter.lus PASS: ./lus2lic {-ec -o /tmp/map_red_iter.ec should_work/map_red_iter.lus} -spawn ./ec2c -o /tmp/map_red_iter.c /tmp/map_red_iter.ec -PASS: ./ec2c {-o /tmp/map_red_iter.c /tmp/map_red_iter.ec} +spawn ./myec2c -o /tmp/map_red_iter.c /tmp/map_red_iter.ec +PASS: ./myec2c {-o /tmp/map_red_iter.c /tmp/map_red_iter.ec} +spawn ../utils/test_lus2lic_no_node should_work/map_red_iter.lus ++ ./lus2lic should_work/map_red_iter.lus -n map_red_iter --gen-autotest -np +_map_red_iter_env.lut generated. +_map_red_iter_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/map_red_iter.lus ++ ./lus2lic should_work/map_red_iter.lus -n map_red_iter -ec -o map_red_iter.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:map_red_iter.ec:map_red_iter -rp env:lutin:_map_red_iter_env.lut -rp oracle:v6:_map_red_iter_oracle.lus:map_red_iter_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/map_red_iter.lus spawn ./lus2lic -o /tmp/p.lic should_work/p.lus PASS: ./lus2lic {-o /tmp/p.lic should_work/p.lus} spawn ./lus2lic -ec -o /tmp/p.ec should_work/p.lus PASS: ./lus2lic {-ec -o /tmp/p.ec should_work/p.lus} -spawn ./ec2c -o /tmp/p.c /tmp/p.ec -PASS: ./ec2c {-o /tmp/p.c /tmp/p.ec} +spawn ./myec2c -o /tmp/p.c /tmp/p.ec +PASS: ./myec2c {-o /tmp/p.c /tmp/p.ec} +spawn ../utils/test_lus2lic_no_node should_work/p.lus ++ ./lus2lic should_work/p.lus -n p --gen-autotest -np +*** Can not find package 'p' in the following packages: +*** 'pbool' +*** 'mainPack' +*** 'pint' +*** 'inter' +*** 'preal' ++ echo Error +Error ++ exit 2 +FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/p.lus spawn ./lus2lic -o /tmp/struct0.lic should_work/struct0.lus PASS: ./lus2lic {-o /tmp/struct0.lic should_work/struct0.lus} spawn ./lus2lic -ec -o /tmp/struct0.ec should_work/struct0.lus PASS: ./lus2lic {-ec -o /tmp/struct0.ec should_work/struct0.lus} -spawn ./ec2c -o /tmp/struct0.c /tmp/struct0.ec -PASS: ./ec2c {-o /tmp/struct0.c /tmp/struct0.ec} +spawn ./myec2c -o /tmp/struct0.c /tmp/struct0.ec +PASS: ./myec2c {-o /tmp/struct0.c /tmp/struct0.ec} +spawn ../utils/test_lus2lic_no_node should_work/struct0.lus ++ ./lus2lic should_work/struct0.lus -n struct0 --gen-autotest -np +_struct0_env.lut generated. +_struct0_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/struct0.lus ++ ./lus2lic should_work/struct0.lus -n struct0 -ec -o struct0.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:struct0.ec:struct0 -rp env:lutin:_struct0_env.lut -rp oracle:v6:_struct0_oracle.lus:struct0_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/struct0.lus spawn ./lus2lic -o /tmp/filliter.lic should_work/filliter.lus PASS: ./lus2lic {-o /tmp/filliter.lic should_work/filliter.lus} spawn ./lus2lic -ec -o /tmp/filliter.ec should_work/filliter.lus PASS: ./lus2lic {-ec -o /tmp/filliter.ec should_work/filliter.lus} -spawn ./ec2c -o /tmp/filliter.c /tmp/filliter.ec -PASS: ./ec2c {-o /tmp/filliter.c /tmp/filliter.ec} +spawn ./myec2c -o /tmp/filliter.c /tmp/filliter.ec +PASS: ./myec2c {-o /tmp/filliter.c /tmp/filliter.ec} +spawn ../utils/test_lus2lic_no_node should_work/filliter.lus ++ ./lus2lic should_work/filliter.lus -n filliter --gen-autotest -np +_filliter_env.lut generated. +_filliter_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/filliter.lus ++ ./lus2lic should_work/filliter.lus -n filliter -ec -o filliter.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:filliter.ec:filliter -rp env:lutin:_filliter_env.lut -rp oracle:v6:_filliter_oracle.lus:filliter_oracle -go -l 10 -ns2c --stop-on-oracle-error +Error in lurette: Lv6errors.Compile_error(_, "\n*** clock error: The two following clocks are not compatible:\n***\t on base\n***\t on c on base\n") +Lurette launched a process that failed (exit 2). + +break signal catched + +lurettetop: bye! ++ echo error +error ++ exit 2 +FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/filliter.lus spawn ./lus2lic -o /tmp/minmax4.lic should_work/minmax4.lus PASS: ./lus2lic {-o /tmp/minmax4.lic should_work/minmax4.lus} spawn ./lus2lic -ec -o /tmp/minmax4.ec should_work/minmax4.lus PASS: ./lus2lic {-ec -o /tmp/minmax4.ec should_work/minmax4.lus} -spawn ./ec2c -o /tmp/minmax4.c /tmp/minmax4.ec -PASS: ./ec2c {-o /tmp/minmax4.c /tmp/minmax4.ec} +spawn ./myec2c -o /tmp/minmax4.c /tmp/minmax4.ec +PASS: ./myec2c {-o /tmp/minmax4.c /tmp/minmax4.ec} +spawn ../utils/test_lus2lic_no_node should_work/minmax4.lus ++ ./lus2lic should_work/minmax4.lus -n minmax4 --gen-autotest -np +_minmax4_env.lut generated. +_minmax4_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/minmax4.lus ++ ./lus2lic should_work/minmax4.lus -n minmax4 -ec -o minmax4.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:minmax4.ec:minmax4 -rp env:lutin:_minmax4_env.lut -rp oracle:v6:_minmax4_oracle.lus:minmax4_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/minmax4.lus spawn ./lus2lic -o /tmp/nested.lic should_work/nested.lus PASS: ./lus2lic {-o /tmp/nested.lic should_work/nested.lus} spawn ./lus2lic -ec -o /tmp/nested.ec should_work/nested.lus PASS: ./lus2lic {-ec -o /tmp/nested.ec should_work/nested.lus} -spawn ./ec2c -o /tmp/nested.c /tmp/nested.ec -PASS: ./ec2c {-o /tmp/nested.c /tmp/nested.ec} +spawn ./myec2c -o /tmp/nested.c /tmp/nested.ec +PASS: ./myec2c {-o /tmp/nested.c /tmp/nested.ec} +spawn ../utils/test_lus2lic_no_node should_work/nested.lus ++ ./lus2lic should_work/nested.lus -n nested --gen-autotest -np +_nested_env.lut generated. +_nested_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/nested.lus ++ ./lus2lic should_work/nested.lus -n nested -ec -o nested.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:nested.ec:nested -rp env:lutin:_nested_env.lut -rp oracle:v6:_nested_oracle.lus:nested_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/nested.lus spawn ./lus2lic -o /tmp/Gyroscope.lic should_work/Gyroscope.lus PASS: ./lus2lic {-o /tmp/Gyroscope.lic should_work/Gyroscope.lus} spawn ./lus2lic -ec -o /tmp/Gyroscope.ec should_work/Gyroscope.lus PASS: ./lus2lic {-ec -o /tmp/Gyroscope.ec should_work/Gyroscope.lus} -spawn ./ec2c -o /tmp/Gyroscope.c /tmp/Gyroscope.ec -PASS: ./ec2c {-o /tmp/Gyroscope.c /tmp/Gyroscope.ec} +spawn ./myec2c -o /tmp/Gyroscope.c /tmp/Gyroscope.ec +PASS: ./myec2c {-o /tmp/Gyroscope.c /tmp/Gyroscope.ec} +spawn ../utils/test_lus2lic_no_node should_work/Gyroscope.lus ++ ./lus2lic should_work/Gyroscope.lus -n Gyroscope --gen-autotest -np +_Gyroscope_env.lut generated. +_Gyroscope_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/Gyroscope.lus ++ ./lus2lic should_work/Gyroscope.lus -n Gyroscope -ec -o Gyroscope.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:Gyroscope.ec:Gyroscope -rp env:lutin:_Gyroscope_env.lut -rp oracle:v6:_Gyroscope_oracle.lus:Gyroscope_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +#ERROR: Output takes on nil +RifIO.Bye +Lurette launched a process that failed (exit 2). + +break signal catched + +lurettetop: bye! ++ echo error +error ++ exit 2 +FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/Gyroscope.lus +spawn ./lus2lic -o /tmp/followed_by.lic should_work/followed_by.lus +PASS: ./lus2lic {-o /tmp/followed_by.lic should_work/followed_by.lus} +spawn ./lus2lic -ec -o /tmp/followed_by.ec should_work/followed_by.lus +PASS: ./lus2lic {-ec -o /tmp/followed_by.ec should_work/followed_by.lus} +spawn ./myec2c -o /tmp/followed_by.c /tmp/followed_by.ec +PASS: ./myec2c {-o /tmp/followed_by.c /tmp/followed_by.ec} +spawn ../utils/test_lus2lic_no_node should_work/followed_by.lus ++ ./lus2lic should_work/followed_by.lus -n followed_by --gen-autotest -np +_followed_by_env.lut generated. +_followed_by_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/followed_by.lus ++ ./lus2lic should_work/followed_by.lus -n followed_by -ec -o followed_by.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:followed_by.ec:followed_by -rp env:lutin:_followed_by_env.lut -rp oracle:v6:_followed_by_oracle.lus:followed_by_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/followed_by.lus spawn ./lus2lic -o /tmp/asservi.lic should_work/asservi.lus PASS: ./lus2lic {-o /tmp/asservi.lic should_work/asservi.lus} spawn ./lus2lic -ec -o /tmp/asservi.ec should_work/asservi.lus PASS: ./lus2lic {-ec -o /tmp/asservi.ec should_work/asservi.lus} -spawn ./ec2c -o /tmp/asservi.c /tmp/asservi.ec -PASS: ./ec2c {-o /tmp/asservi.c /tmp/asservi.ec} +spawn ./myec2c -o /tmp/asservi.c /tmp/asservi.ec +PASS: ./myec2c {-o /tmp/asservi.c /tmp/asservi.ec} +spawn ../utils/test_lus2lic_no_node should_work/asservi.lus ++ ./lus2lic should_work/asservi.lus -n asservi --gen-autotest -np +*** The soc of asservi::make_pend is not defined. FINISH ME! +Extern node not yet supported, sorry + +*** oops: lus2lic internal error + File "src/lic2soc.ml", line 897, column 14 +*** when compiling lustre program should_work/asservi.lus + +*** You migth want to sent a bug report to jahier@imag.fr ++ echo Error +Error ++ exit 2 +FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/asservi.lus spawn ./lus2lic -o /tmp/rediter.lic should_work/rediter.lus PASS: ./lus2lic {-o /tmp/rediter.lic should_work/rediter.lus} spawn ./lus2lic -ec -o /tmp/rediter.ec should_work/rediter.lus PASS: ./lus2lic {-ec -o /tmp/rediter.ec should_work/rediter.lus} -spawn ./ec2c -o /tmp/rediter.c /tmp/rediter.ec -PASS: ./ec2c {-o /tmp/rediter.c /tmp/rediter.ec} +spawn ./myec2c -o /tmp/rediter.c /tmp/rediter.ec +PASS: ./myec2c {-o /tmp/rediter.c /tmp/rediter.ec} +spawn ../utils/test_lus2lic_no_node should_work/rediter.lus ++ ./lus2lic should_work/rediter.lus -n rediter --gen-autotest -np +_rediter_env.lut generated. +_rediter_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/rediter.lus ++ ./lus2lic should_work/rediter.lus -n rediter -ec -o rediter.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:rediter.ec:rediter -rp env:lutin:_rediter_env.lut -rp oracle:v6:_rediter_oracle.lus:rediter_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/rediter.lus spawn ./lus2lic -o /tmp/mapdeRed.lic should_work/mapdeRed.lus PASS: ./lus2lic {-o /tmp/mapdeRed.lic should_work/mapdeRed.lus} spawn ./lus2lic -ec -o /tmp/mapdeRed.ec should_work/mapdeRed.lus PASS: ./lus2lic {-ec -o /tmp/mapdeRed.ec should_work/mapdeRed.lus} -spawn ./ec2c -o /tmp/mapdeRed.c /tmp/mapdeRed.ec -PASS: ./ec2c {-o /tmp/mapdeRed.c /tmp/mapdeRed.ec} +spawn ./myec2c -o /tmp/mapdeRed.c /tmp/mapdeRed.ec +PASS: ./myec2c {-o /tmp/mapdeRed.c /tmp/mapdeRed.ec} +spawn ../utils/test_lus2lic_no_node should_work/mapdeRed.lus ++ ./lus2lic should_work/mapdeRed.lus -n mapdeRed --gen-autotest -np +_mapdeRed_env.lut generated. +_mapdeRed_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/mapdeRed.lus ++ ./lus2lic should_work/mapdeRed.lus -n mapdeRed -ec -o mapdeRed.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:mapdeRed.ec:mapdeRed -rp env:lutin:_mapdeRed_env.lut -rp oracle:v6:_mapdeRed_oracle.lus:mapdeRed_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/mapdeRed.lus spawn ./lus2lic -o /tmp/modelInst.lic should_work/modelInst.lus PASS: ./lus2lic {-o /tmp/modelInst.lic should_work/modelInst.lus} spawn ./lus2lic -ec -o /tmp/modelInst.ec should_work/modelInst.lus PASS: ./lus2lic {-ec -o /tmp/modelInst.ec should_work/modelInst.lus} -spawn ./ec2c -o /tmp/modelInst.c /tmp/modelInst.ec -PASS: ./ec2c {-o /tmp/modelInst.c /tmp/modelInst.ec} +spawn ./myec2c -o /tmp/modelInst.c /tmp/modelInst.ec +PASS: ./myec2c {-o /tmp/modelInst.c /tmp/modelInst.ec} +spawn ../utils/test_lus2lic_no_node should_work/modelInst.lus ++ ./lus2lic should_work/modelInst.lus -n modelInst --gen-autotest -np +*** Can not find package 'modelInst' in the following packages: +*** 'Preal' +*** 'Pint' +*** 'main' +*** 'Pbool' ++ echo Error +Error ++ exit 2 +FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/modelInst.lus spawn ./lus2lic -o /tmp/dependeur_struct.lic should_work/dependeur_struct.lus PASS: ./lus2lic {-o /tmp/dependeur_struct.lic should_work/dependeur_struct.lus} spawn ./lus2lic -ec -o /tmp/dependeur_struct.ec should_work/dependeur_struct.lus PASS: ./lus2lic {-ec -o /tmp/dependeur_struct.ec should_work/dependeur_struct.lus} -spawn ./ec2c -o /tmp/dependeur_struct.c /tmp/dependeur_struct.ec -PASS: ./ec2c {-o /tmp/dependeur_struct.c /tmp/dependeur_struct.ec} +spawn ./myec2c -o /tmp/dependeur_struct.c /tmp/dependeur_struct.ec +PASS: ./myec2c {-o /tmp/dependeur_struct.c /tmp/dependeur_struct.ec} +spawn ../utils/test_lus2lic_no_node should_work/dependeur_struct.lus ++ ./lus2lic should_work/dependeur_struct.lus -n dependeur_struct --gen-autotest -np +_dependeur_struct_env.lut generated. +_dependeur_struct_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/dependeur_struct.lus ++ ./lus2lic should_work/dependeur_struct.lus -n dependeur_struct -ec -o dependeur_struct.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:dependeur_struct.ec:dependeur_struct -rp env:lutin:_dependeur_struct_env.lut -rp oracle:v6:_dependeur_struct_oracle.lus:dependeur_struct_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exitPASS: ../utils/test_lus2lic_no_node should_work/dependeur_struct.lus spawn ./lus2lic -o /tmp/minmax4_bis.lic should_work/minmax4_bis.lus PASS: ./lus2lic {-o /tmp/minmax4_bis.lic should_work/minmax4_bis.lus} spawn ./lus2lic -ec -o /tmp/minmax4_bis.ec should_work/minmax4_bis.lus PASS: ./lus2lic {-ec -o /tmp/minmax4_bis.ec should_work/minmax4_bis.lus} -spawn ./ec2c -o /tmp/minmax4_bis.c /tmp/minmax4_bis.ec -PASS: ./ec2c {-o /tmp/minmax4_bis.c /tmp/minmax4_bis.ec} +spawn ./myec2c -o /tmp/minmax4_bis.c /tmp/minmax4_bis.ec +PASS: ./myec2c {-o /tmp/minmax4_bis.c /tmp/minmax4_bis.ec} +spawn ../utils/test_lus2lic_no_node should_work/minmax4_bis.lus ++ ./lus2lic should_work/minmax4_bis.lus -n minmax4_bis --gen-autotest -np +_minmax4_bis_env.lut generated. +_minmax4_bis_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/minmax4_bis.lus ++ ./lus2lic should_work/minmax4_bis.lus -n minmax4_bis -ec -o minmax4_bis.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:minmax4_bis.ec:minmax4_bis -rp env:lutin:_minmax4_bis_env.lut -rp oracle:v6:_minmax4_bis_oracle.lus:minmax4_bis_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/minmax4_bis.lus +spawn ./lus2lic -o /tmp/test_struct.lic should_work/test_struct.lus +PASS: ./lus2lic {-o /tmp/test_struct.lic should_work/test_struct.lus} +spawn ./lus2lic -ec -o /tmp/test_struct.ec should_work/test_struct.lus +PASS: ./lus2lic {-ec -o /tmp/test_struct.ec should_work/test_struct.lus} +spawn ./myec2c -o /tmp/test_struct.c /tmp/test_struct.ec +PASS: ./myec2c {-o /tmp/test_struct.c /tmp/test_struct.ec} +spawn ../utils/test_lus2lic_no_node should_work/test_struct.lus ++ ./lus2lic should_work/test_struct.lus -n test_struct --gen-autotest -np +_test_struct_env.lut generated. +_test_struct_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/test_struct.lus ++ ./lus2lic should_work/test_struct.lus -n test_struct -ec -o test_struct.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:test_struct.ec:test_struct -rp env:lutin:_test_struct_env.lut -rp oracle:v6:_test_struct_oracle.lus:test_struct_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/test_struct.lus spawn ./lus2lic -o /tmp/uu.lic should_work/uu.lus PASS: ./lus2lic {-o /tmp/uu.lic should_work/uu.lus} spawn ./lus2lic -ec -o /tmp/uu.ec should_work/uu.lus PASS: ./lus2lic {-ec -o /tmp/uu.ec should_work/uu.lus} -spawn ./ec2c -o /tmp/uu.c /tmp/uu.ec -PASS: ./ec2c {-o /tmp/uu.c /tmp/uu.ec} +spawn ./myec2c -o /tmp/uu.c /tmp/uu.ec +PASS: ./myec2c {-o /tmp/uu.c /tmp/uu.ec} +spawn ../utils/test_lus2lic_no_node should_work/uu.lus ++ ./lus2lic should_work/uu.lus -n uu --gen-autotest -np +_uu_env.lut generated. +_uu_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/uu.lus ++ ./lus2lic should_work/uu.lus -n uu -ec -o uu.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:uu.ec:uu -rp env:lutin:_uu_env.lut -rp oracle:v6:_uu_oracle.lus:uu_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/uu.lus spawn ./lus2lic -o /tmp/simpleRed.lic should_work/simpleRed.lus PASS: ./lus2lic {-o /tmp/simpleRed.lic should_work/simpleRed.lus} spawn ./lus2lic -ec -o /tmp/simpleRed.ec should_work/simpleRed.lus PASS: ./lus2lic {-ec -o /tmp/simpleRed.ec should_work/simpleRed.lus} -spawn ./ec2c -o /tmp/simpleRed.c /tmp/simpleRed.ec -PASS: ./ec2c {-o /tmp/simpleRed.c /tmp/simpleRed.ec} +spawn ./myec2c -o /tmp/simpleRed.c /tmp/simpleRed.ec +PASS: ./myec2c {-o /tmp/simpleRed.c /tmp/simpleRed.ec} +spawn ../utils/test_lus2lic_no_node should_work/simpleRed.lus ++ ./lus2lic should_work/simpleRed.lus -n simpleRed --gen-autotest -np +_simpleRed_env.lut generated. +_simpleRed_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/simpleRed.lus ++ ./lus2lic should_work/simpleRed.lus -n simpleRed -ec -o simpleRed.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:simpleRed.ec:simpleRed -rp env:lutin:_simpleRed_env.lut -rp oracle:v6:_simpleRed_oracle.lus:simpleRed_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/simpleRed.lus spawn ./lus2lic -o /tmp/map.lic should_work/map.lus PASS: ./lus2lic {-o /tmp/map.lic should_work/map.lus} spawn ./lus2lic -ec -o /tmp/map.ec should_work/map.lus PASS: ./lus2lic {-ec -o /tmp/map.ec should_work/map.lus} -spawn ./ec2c -o /tmp/map.c /tmp/map.ec -PASS: ./ec2c {-o /tmp/map.c /tmp/map.ec} -spawn ./lus2lic -o /tmp/drapfab.lic should_work/drapfab.lus -PASS: ./lus2lic {-o /tmp/drapfab.lic should_work/drapfab.lus} -spawn ./lus2lic -ec -o /tmp/drapfab.ec should_work/drapfab.lus -PASS: ./lus2lic {-ec -o /tmp/drapfab.ec should_work/drapfab.lus} -spawn ./ec2c -o /tmp/drapfab.c /tmp/drapfab.ec -PASS: ./ec2c {-o /tmp/drapfab.c /tmp/drapfab.ec} +spawn ./myec2c -o /tmp/map.c /tmp/map.ec +PASS: ./myec2c {-o /tmp/map.c /tmp/map.ec} +spawn ../utils/test_lus2lic_no_node should_work/map.lus ++ ./lus2lic should_work/map.lus -n map --gen-autotest -np +_map_env.lut generated. +_map_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/map.lus ++ ./lus2lic should_work/map.lus -n map -ec -o map.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:map.ec:map -rp env:lutin:_map_env.lut -rp oracle:v6:_map_oracle.lus:map_oracle -go -l 10 -ns2c --stop-on-oracle-error +Error in lurette: Lv6errors.Compile_error(_, "*** an integer and a node are expected.\n") +Lurette launched a process that failed (exit 2). + +break signal catched + +lurettetop: bye! ++ echo error +error ++ exit 2 +FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/map.lus spawn ./lus2lic -o /tmp/pre_x.lic should_work/pre_x.lus PASS: ./lus2lic {-o /tmp/pre_x.lic should_work/pre_x.lus} spawn ./lus2lic -ec -o /tmp/pre_x.ec should_work/pre_x.lus PASS: ./lus2lic {-ec -o /tmp/pre_x.ec should_work/pre_x.lus} -spawn ./ec2c -o /tmp/pre_x.c /tmp/pre_x.ec -PASS: ./ec2c {-o /tmp/pre_x.c /tmp/pre_x.ec} +spawn ./myec2c -o /tmp/pre_x.c /tmp/pre_x.ec +PASS: ./myec2c {-o /tmp/pre_x.c /tmp/pre_x.ec} +spawn ../utils/test_lus2lic_no_node should_work/pre_x.lus ++ ./lus2lic should_work/pre_x.lus -n pre_x --gen-autotest -np +_pre_x_env.lut generated. +_pre_x_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/pre_x.lus ++ ./lus2lic should_work/pre_x.lus -n pre_x -ec -o pre_x.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:pre_x.ec:pre_x -rp env:lutin:_pre_x_env.lut -rp oracle:v6:_pre_x_oracle.lus:pre_x_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/pre_x.lus spawn ./lus2lic -o /tmp/ts01.lic should_work/ts01.lus PASS: ./lus2lic {-o /tmp/ts01.lic should_work/ts01.lus} spawn ./lus2lic -ec -o /tmp/ts01.ec should_work/ts01.lus PASS: ./lus2lic {-ec -o /tmp/ts01.ec should_work/ts01.lus} -spawn ./ec2c -o /tmp/ts01.c /tmp/ts01.ec -PASS: ./ec2c {-o /tmp/ts01.c /tmp/ts01.ec} +spawn ./myec2c -o /tmp/ts01.c /tmp/ts01.ec +PASS: ./myec2c {-o /tmp/ts01.c /tmp/ts01.ec} +spawn ../utils/test_lus2lic_no_node should_work/ts01.lus ++ ./lus2lic should_work/ts01.lus -n ts01 --gen-autotest -np +_ts01_env.lut generated. +_ts01_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/ts01.lus ++ ./lus2lic should_work/ts01.lus -n ts01 -ec -o ts01.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:ts01.ec:ts01 -rp env:lutin:_ts01_env.lut -rp oracle:v6:_ts01_oracle.lus:ts01_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/ts01.lus spawn ./lus2lic -o /tmp/_N_uu.lic should_work/_N_uu.lus PASS: ./lus2lic {-o /tmp/_N_uu.lic should_work/_N_uu.lus} spawn ./lus2lic -ec -o /tmp/_N_uu.ec should_work/_N_uu.lus PASS: ./lus2lic {-ec -o /tmp/_N_uu.ec should_work/_N_uu.lus} -spawn ./ec2c -o /tmp/_N_uu.c /tmp/_N_uu.ec -PASS: ./ec2c {-o /tmp/_N_uu.c /tmp/_N_uu.ec} +spawn ./myec2c -o /tmp/_N_uu.c /tmp/_N_uu.ec +PASS: ./myec2c {-o /tmp/_N_uu.c /tmp/_N_uu.ec} +spawn ../utils/test_lus2lic_no_node should_work/_N_uu.lus ++ ./lus2lic should_work/_N_uu.lus -n _N_uu --gen-autotest -np +__N_uu_env.lut generated. +__N_uu_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/_N_uu.lus ++ ./lus2lic should_work/_N_uu.lus -n _N_uu -ec -o _N_uu.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:_N_uu.ec:_N_uu -rp env:lutin:__N_uu_env.lut -rp oracle:v6:__N_uu_oracle.lus:_N_uu_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/_N_uu.lus spawn ./lus2lic -o /tmp/X2.lic should_work/X2.lus PASS: ./lus2lic {-o /tmp/X2.lic should_work/X2.lus} spawn ./lus2lic -ec -o /tmp/X2.ec should_work/X2.lus PASS: ./lus2lic {-ec -o /tmp/X2.ec should_work/X2.lus} -spawn ./ec2c -o /tmp/X2.c /tmp/X2.ec -PASS: ./ec2c {-o /tmp/X2.c /tmp/X2.ec} +spawn ./myec2c -o /tmp/X2.c /tmp/X2.ec +PASS: ./myec2c {-o /tmp/X2.c /tmp/X2.ec} +spawn ../utils/test_lus2lic_no_node should_work/X2.lus ++ ./lus2lic should_work/X2.lus -n X2 --gen-autotest -np +_X2_env.lut generated. +_X2_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/X2.lus ++ ./lus2lic should_work/X2.lus -n X2 -ec -o X2.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:X2.ec:X2 -rp env:lutin:_X2_env.lut -rp oracle:v6:_X2_oracle.lus:X2_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/X2.lus spawn ./lus2lic -o /tmp/alias.lic should_work/alias.lus PASS: ./lus2lic {-o /tmp/alias.lic should_work/alias.lus} spawn ./lus2lic -ec -o /tmp/alias.ec should_work/alias.lus PASS: ./lus2lic {-ec -o /tmp/alias.ec should_work/alias.lus} -spawn ./ec2c -o /tmp/alias.c /tmp/alias.ec -PASS: ./ec2c {-o /tmp/alias.c /tmp/alias.ec} +spawn ./myec2c -o /tmp/alias.c /tmp/alias.ec +PASS: ./myec2c {-o /tmp/alias.c /tmp/alias.ec} +spawn ../utils/test_lus2lic_no_node should_work/alias.lus ++ ./lus2lic should_work/alias.lus -n alias --gen-autotest -np +_alias_env.lut generated. +_alias_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/alias.lus ++ ./lus2lic should_work/alias.lus -n alias -ec -o alias.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:alias.ec:alias -rp env:lutin:_alias_env.lut -rp oracle:v6:_alias_oracle.lus:alias_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/alias.lus spawn ./lus2lic -o /tmp/hanane.lic should_work/hanane.lus PASS: ./lus2lic {-o /tmp/hanane.lic should_work/hanane.lus} spawn ./lus2lic -ec -o /tmp/hanane.ec should_work/hanane.lus PASS: ./lus2lic {-ec -o /tmp/hanane.ec should_work/hanane.lus} -spawn ./ec2c -o /tmp/hanane.c /tmp/hanane.ec -PASS: ./ec2c {-o /tmp/hanane.c /tmp/hanane.ec} +spawn ./myec2c -o /tmp/hanane.c /tmp/hanane.ec +PASS: ./myec2c {-o /tmp/hanane.c /tmp/hanane.ec} +spawn ../utils/test_lus2lic_no_node should_work/hanane.lus ++ ./lus2lic should_work/hanane.lus -n hanane --gen-autotest -np +_hanane_env.lut generated. +_hanane_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/hanane.lus ++ ./lus2lic should_work/hanane.lus -n hanane -ec -o hanane.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:hanane.ec:hanane -rp env:lutin:_hanane_env.lut -rp oracle:v6:_hanane_oracle.lus:hanane_oracle -go -l 10 -ns2c --stop-on-oracle-error +Error in lurette: Lv6errors.Compile_error(_, "\n*** clock error: The two following clocks are not compatible:\n***\t on base\n***\t on a1 on base\n") +Lurette launched a process that failed (exit 2). + +break signal catched + +lurettetop: bye! ++ echo error +error ++ exit 2 +FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/hanane.lus spawn ./lus2lic -o /tmp/lustre.lic should_work/lustre.lus PASS: ./lus2lic {-o /tmp/lustre.lic should_work/lustre.lus} spawn ./lus2lic -ec -o /tmp/lustre.ec should_work/lustre.lus PASS: ./lus2lic {-ec -o /tmp/lustre.ec should_work/lustre.lus} -spawn ./ec2c -o /tmp/lustre.c /tmp/lustre.ec -PASS: ./ec2c {-o /tmp/lustre.c /tmp/lustre.ec} +spawn ./myec2c -o /tmp/lustre.c /tmp/lustre.ec +PASS: ./myec2c {-o /tmp/lustre.c /tmp/lustre.ec} +spawn ../utils/test_lus2lic_no_node should_work/lustre.lus ++ ./lus2lic should_work/lustre.lus -n lustre --gen-autotest -np +*** Can not find package 'lustre' in the following packages: +*** 'Lustre' ++ echo Error +Error ++ exit 2 +FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/lustre.lus spawn ./lus2lic -o /tmp/packed_cst.lic should_work/packed_cst.lus PASS: ./lus2lic {-o /tmp/packed_cst.lic should_work/packed_cst.lus} spawn ./lus2lic -ec -o /tmp/packed_cst.ec should_work/packed_cst.lus PASS: ./lus2lic {-ec -o /tmp/packed_cst.ec should_work/packed_cst.lus} -spawn ./ec2c -o /tmp/packed_cst.c /tmp/packed_cst.ec -PASS: ./ec2c {-o /tmp/packed_cst.c /tmp/packed_cst.ec} +spawn ./myec2c -o /tmp/packed_cst.c /tmp/packed_cst.ec +PASS: ./myec2c {-o /tmp/packed_cst.c /tmp/packed_cst.ec} +spawn ../utils/test_lus2lic_no_node should_work/packed_cst.lus ++ ./lus2lic should_work/packed_cst.lus -n packed_cst --gen-autotest -np +*** Can not find package 'packed_cst' in the following packages: +*** 'cst' ++ echo Error +Error ++ exit 2 +FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/packed_cst.lus spawn ./lus2lic -o /tmp/predef02.lic should_work/predef02.lus PASS: ./lus2lic {-o /tmp/predef02.lic should_work/predef02.lus} spawn ./lus2lic -ec -o /tmp/predef02.ec should_work/predef02.lus PASS: ./lus2lic {-ec -o /tmp/predef02.ec should_work/predef02.lus} -spawn ./ec2c -o /tmp/predef02.c /tmp/predef02.ec -PASS: ./ec2c {-o /tmp/predef02.c /tmp/predef02.ec} +spawn ./myec2c -o /tmp/predef02.c /tmp/predef02.ec +PASS: ./myec2c {-o /tmp/predef02.c /tmp/predef02.ec} +spawn ../utils/test_lus2lic_no_node should_work/predef02.lus ++ ./lus2lic should_work/predef02.lus -n predef02 --gen-autotest -np +_predef02_env.lut generated. +_predef02_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/predef02.lus ++ ./lus2lic should_work/predef02.lus -n predef02 -ec -o predef02.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:predef02.ec:predef02 -rp env:lutin:_predef02_env.lut -rp oracle:v6:_predef02_oracle.lus:predef02_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/predef02.lus spawn ./lus2lic -o /tmp/toto.lic should_work/toto.lus PASS: ./lus2lic {-o /tmp/toto.lic should_work/toto.lus} spawn ./lus2lic -ec -o /tmp/toto.ec should_work/toto.lus PASS: ./lus2lic {-ec -o /tmp/toto.ec should_work/toto.lus} -spawn ./ec2c -o /tmp/toto.c /tmp/toto.ec -PASS: ./ec2c {-o /tmp/toto.c /tmp/toto.ec} +spawn ./myec2c -o /tmp/toto.c /tmp/toto.ec +PASS: ./myec2c {-o /tmp/toto.c /tmp/toto.ec} +spawn ../utils/test_lus2lic_no_node should_work/toto.lus ++ ./lus2lic should_work/toto.lus -n toto --gen-autotest -np +_toto_env.lut generated. +_toto_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/toto.lus ++ ./lus2lic should_work/toto.lus -n toto -ec -o toto.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:toto.ec:toto -rp env:lutin:_toto_env.lut -rp oracle:v6:_toto_oracle.lus:toto_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/toto.lus spawn ./lus2lic -o /tmp/minmax6.lic should_work/minmax6.lus PASS: ./lus2lic {-o /tmp/minmax6.lic should_work/minmax6.lus} spawn ./lus2lic -ec -o /tmp/minmax6.ec should_work/minmax6.lus PASS: ./lus2lic {-ec -o /tmp/minmax6.ec should_work/minmax6.lus} -spawn ./ec2c -o /tmp/minmax6.c /tmp/minmax6.ec -PASS: ./ec2c {-o /tmp/minmax6.c /tmp/minmax6.ec} +spawn ./myec2c -o /tmp/minmax6.c /tmp/minmax6.ec +PASS: ./myec2c {-o /tmp/minmax6.c /tmp/minmax6.ec} +spawn ../utils/test_lus2lic_no_node should_work/minmax6.lus ++ ./lus2lic should_work/minmax6.lus -n minmax6 --gen-autotest -np +_minmax6_env.lut generated. +_minmax6_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/minmax6.lus ++ ./lus2lic should_work/minmax6.lus -n minmax6 -ec -o minmax6.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:minmax6.ec:minmax6 -rp env:lutin:_minmax6_env.lut -rp oracle:v6:_minmax6_oracle.lus:minmax6_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/minmax6.lus spawn ./lus2lic -o /tmp/ck3.lic should_work/ck3.lus PASS: ./lus2lic {-o /tmp/ck3.lic should_work/ck3.lus} spawn ./lus2lic -ec -o /tmp/ck3.ec should_work/ck3.lus PASS: ./lus2lic {-ec -o /tmp/ck3.ec should_work/ck3.lus} -spawn ./ec2c -o /tmp/ck3.c /tmp/ck3.ec -PASS: ./ec2c {-o /tmp/ck3.c /tmp/ck3.ec} +spawn ./myec2c -o /tmp/ck3.c /tmp/ck3.ec +PASS: ./myec2c {-o /tmp/ck3.c /tmp/ck3.ec} +spawn ../utils/test_lus2lic_no_node should_work/ck3.lus ++ ./lus2lic should_work/ck3.lus -n ck3 --gen-autotest -np +_ck3_env.lut generated. +_ck3_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/ck3.lus ++ ./lus2lic should_work/ck3.lus -n ck3 -ec -o ck3.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:ck3.ec:ck3 -rp env:lutin:_ck3_env.lut -rp oracle:v6:_ck3_oracle.lus:ck3_oracle -go -l 10 -ns2c --stop-on-oracle-error +Error in lurette: Lv6errors.Compile_error(_, "\n*** clock error: The two following clocks are not compatible:\n***\t on base\n***\t on a on base\n") +Lurette launched a process that failed (exit 2). + +break signal catched + +lurettetop: bye! ++ echo error +error ++ exit 2 +FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/ck3.lus spawn ./lus2lic -o /tmp/zzz.lic should_work/zzz.lus PASS: ./lus2lic {-o /tmp/zzz.lic should_work/zzz.lus} spawn ./lus2lic -ec -o /tmp/zzz.ec should_work/zzz.lus PASS: ./lus2lic {-ec -o /tmp/zzz.ec should_work/zzz.lus} -spawn ./ec2c -o /tmp/zzz.c /tmp/zzz.ec -PASS: ./ec2c {-o /tmp/zzz.c /tmp/zzz.ec} +spawn ./myec2c -o /tmp/zzz.c /tmp/zzz.ec +PASS: ./myec2c {-o /tmp/zzz.c /tmp/zzz.ec} +spawn ../utils/test_lus2lic_no_node should_work/zzz.lus ++ ./lus2lic should_work/zzz.lus -n zzz --gen-autotest -np +_zzz_env.lut generated. +_zzz_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/zzz.lus ++ ./lus2lic should_work/zzz.lus -n zzz -ec -o zzz.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:zzz.ec:zzz -rp env:lutin:_zzz_env.lut -rp oracle:v6:_zzz_oracle.lus:zzz_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/zzz.lus spawn ./lus2lic -o /tmp/STABLE.lic should_work/STABLE.lus PASS: ./lus2lic {-o /tmp/STABLE.lic should_work/STABLE.lus} spawn ./lus2lic -ec -o /tmp/STABLE.ec should_work/STABLE.lus PASS: ./lus2lic {-ec -o /tmp/STABLE.ec should_work/STABLE.lus} -spawn ./ec2c -o /tmp/STABLE.c /tmp/STABLE.ec -PASS: ./ec2c {-o /tmp/STABLE.c /tmp/STABLE.ec} +spawn ./myec2c -o /tmp/STABLE.c /tmp/STABLE.ec +PASS: ./myec2c {-o /tmp/STABLE.c /tmp/STABLE.ec} +spawn ../utils/test_lus2lic_no_node should_work/STABLE.lus ++ ./lus2lic should_work/STABLE.lus -n STABLE --gen-autotest -np +_STABLE_env.lut generated. +_STABLE_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/STABLE.lus ++ ./lus2lic should_work/STABLE.lus -n STABLE -ec -o STABLE.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:STABLE.ec:STABLE -rp env:lutin:_STABLE_env.lut -rp oracle:v6:_STABLE_oracle.lus:STABLE_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/STABLE.lus spawn ./lus2lic -o /tmp/mapiter.lic should_work/mapiter.lus PASS: ./lus2lic {-o /tmp/mapiter.lic should_work/mapiter.lus} spawn ./lus2lic -ec -o /tmp/mapiter.ec should_work/mapiter.lus PASS: ./lus2lic {-ec -o /tmp/mapiter.ec should_work/mapiter.lus} -spawn ./ec2c -o /tmp/mapiter.c /tmp/mapiter.ec -PASS: ./ec2c {-o /tmp/mapiter.c /tmp/mapiter.ec} +spawn ./myec2c -o /tmp/mapiter.c /tmp/mapiter.ec +PASS: ./myec2c {-o /tmp/mapiter.c /tmp/mapiter.ec} +spawn ../utils/test_lus2lic_no_node should_work/mapiter.lus ++ ./lus2lic should_work/mapiter.lus -n mapiter --gen-autotest -np +_mapiter_env.lut generated. +_mapiter_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/mapiter.lus ++ ./lus2lic should_work/mapiter.lus -n mapiter -ec -o mapiter.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:mapiter.ec:mapiter -rp env:lutin:_mapiter_env.lut -rp oracle:v6:_mapiter_oracle.lus:mapiter_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/mapiter.lus spawn ./lus2lic -o /tmp/tuple.lic should_work/tuple.lus PASS: ./lus2lic {-o /tmp/tuple.lic should_work/tuple.lus} spawn ./lus2lic -ec -o /tmp/tuple.ec should_work/tuple.lus PASS: ./lus2lic {-ec -o /tmp/tuple.ec should_work/tuple.lus} -spawn ./ec2c -o /tmp/tuple.c /tmp/tuple.ec -PASS: ./ec2c {-o /tmp/tuple.c /tmp/tuple.ec} +spawn ./myec2c -o /tmp/tuple.c /tmp/tuple.ec +PASS: ./myec2c {-o /tmp/tuple.c /tmp/tuple.ec} +spawn ../utils/test_lus2lic_no_node should_work/tuple.lus ++ ./lus2lic should_work/tuple.lus -n tuple --gen-autotest -np +_tuple_env.lut generated. +_tuple_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/tuple.lus ++ ./lus2lic should_work/tuple.lus -n tuple -ec -o tuple.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:tuple.ec:tuple -rp env:lutin:_tuple_env.lut -rp oracle:v6:_tuple_oracle.lus:tuple_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/tuple.lus spawn ./lus2lic -o /tmp/call02.lic should_work/call02.lus PASS: ./lus2lic {-o /tmp/call02.lic should_work/call02.lus} spawn ./lus2lic -ec -o /tmp/call02.ec should_work/call02.lus PASS: ./lus2lic {-ec -o /tmp/call02.ec should_work/call02.lus} -spawn ./ec2c -o /tmp/call02.c /tmp/call02.ec -PASS: ./ec2c {-o /tmp/call02.c /tmp/call02.ec} +spawn ./myec2c -o /tmp/call02.c /tmp/call02.ec +PASS: ./myec2c {-o /tmp/call02.c /tmp/call02.ec} +spawn ../utils/test_lus2lic_no_node should_work/call02.lus ++ ./lus2lic should_work/call02.lus -n call02 --gen-autotest -np +_call02_env.lut generated. +_call02_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/call02.lus ++ ./lus2lic should_work/call02.lus -n call02 -ec -o call02.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:call02.ec:call02 -rp env:lutin:_call02_env.lut -rp oracle:v6:_call02_oracle.lus:call02_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/call02.lus spawn ./lus2lic -o /tmp/ck7.lic should_work/ck7.lus PASS: ./lus2lic {-o /tmp/ck7.lic should_work/ck7.lus} spawn ./lus2lic -ec -o /tmp/ck7.ec should_work/ck7.lus PASS: ./lus2lic {-ec -o /tmp/ck7.ec should_work/ck7.lus} -spawn ./ec2c -o /tmp/ck7.c /tmp/ck7.ec -PASS: ./ec2c {-o /tmp/ck7.c /tmp/ck7.ec} +spawn ./myec2c -o /tmp/ck7.c /tmp/ck7.ec +PASS: ./myec2c {-o /tmp/ck7.c /tmp/ck7.ec} +spawn ../utils/test_lus2lic_no_node should_work/ck7.lus ++ ./lus2lic should_work/ck7.lus -n ck7 --gen-autotest -np +_ck7_env.lut generated. +_ck7_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/ck7.lus ++ ./lus2lic should_work/ck7.lus -n ck7 -ec -o ck7.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:ck7.ec:ck7 -rp env:lutin:_ck7_env.lut -rp oracle:v6:_ck7_oracle.lus:ck7_oracle -go -l 10 -ns2c --stop-on-oracle-error +Error in lurette: Lv6errors.Compile_error(_, "\n*** clock error: The two following clocks are not compatible:\n***\t on base\n***\t on a on base\n") +Lurette launched a process that failed (exit 2). + +break signal catched + +lurettetop: bye! ++ echo error +error ++ exit 2 +FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/ck7.lus spawn ./lus2lic -o /tmp/nc10.lic should_work/nc10.lus PASS: ./lus2lic {-o /tmp/nc10.lic should_work/nc10.lus} spawn ./lus2lic -ec -o /tmp/nc10.ec should_work/nc10.lus PASS: ./lus2lic {-ec -o /tmp/nc10.ec should_work/nc10.lus} -spawn ./ec2c -o /tmp/nc10.c /tmp/nc10.ec -PASS: ./ec2c {-o /tmp/nc10.c /tmp/nc10.ec} +spawn ./myec2c -o /tmp/nc10.c /tmp/nc10.ec +PASS: ./myec2c {-o /tmp/nc10.c /tmp/nc10.ec} +spawn ../utils/test_lus2lic_no_node should_work/nc10.lus ++ ./lus2lic should_work/nc10.lus -n nc10 --gen-autotest -np +_nc10_env.lut generated. +_nc10_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/nc10.lus ++ ./lus2lic should_work/nc10.lus -n nc10 -ec -o nc10.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:nc10.ec:nc10 -rp env:lutin:_nc10_env.lut -rp oracle:v6:_nc10_oracle.lus:nc10_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/nc10.lus spawn ./lus2lic -o /tmp/triSel.lic should_work/triSel.lus PASS: ./lus2lic {-o /tmp/triSel.lic should_work/triSel.lus} spawn ./lus2lic -ec -o /tmp/triSel.ec should_work/triSel.lus PASS: ./lus2lic {-ec -o /tmp/triSel.ec should_work/triSel.lus} -spawn ./ec2c -o /tmp/triSel.c /tmp/triSel.ec -PASS: ./ec2c {-o /tmp/triSel.c /tmp/triSel.ec} -spawn ./lus2lic -o /tmp/s.lic should_work/s.lus -PASS: ./lus2lic {-o /tmp/s.lic should_work/s.lus} -spawn ./lus2lic -ec -o /tmp/s.ec should_work/s.lus -PASS: ./lus2lic {-ec -o /tmp/s.ec should_work/s.lus} -spawn ./ec2c -o /tmp/s.c /tmp/s.ec -PASS: ./ec2c {-o /tmp/s.c /tmp/s.ec} +spawn ./myec2c -o /tmp/triSel.c /tmp/triSel.ec +PASS: ./myec2c {-o /tmp/triSel.c /tmp/triSel.ec} +spawn ../utils/test_lus2lic_no_node should_work/triSel.lus ++ ./lus2lic should_work/triSel.lus -n triSel --gen-autotest -np +_triSel_env.lut generated. +_triSel_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/triSel.lus ++ ./lus2lic should_work/triSel.lus -n triSel -ec -o triSel.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:triSel.ec:triSel -rp env:lutin:_triSel_env.lut -rp oracle:v6:_triSel_oracle.lus:triSel_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/triSel.lus spawn ./lus2lic -o /tmp/redoptest.lic should_work/redoptest.lus PASS: ./lus2lic {-o /tmp/redoptest.lic should_work/redoptest.lus} spawn ./lus2lic -ec -o /tmp/redoptest.ec should_work/redoptest.lus PASS: ./lus2lic {-ec -o /tmp/redoptest.ec should_work/redoptest.lus} -spawn ./ec2c -o /tmp/redoptest.c /tmp/redoptest.ec -PASS: ./ec2c {-o /tmp/redoptest.c /tmp/redoptest.ec} +spawn ./myec2c -o /tmp/redoptest.c /tmp/redoptest.ec +PASS: ./myec2c {-o /tmp/redoptest.c /tmp/redoptest.ec} +spawn ../utils/test_lus2lic_no_node should_work/redoptest.lus ++ ./lus2lic should_work/redoptest.lus -n redoptest --gen-autotest -np +_redoptest_env.lut generated. +_redoptest_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/redoptest.lus ++ ./lus2lic should_work/redoptest.lus -n redoptest -ec -o redoptest.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:redoptest.ec:redoptest -rp env:lutin:_redoptest_env.lut -rp oracle:v6:_redoptest_oracle.lus:redoptest_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/redoptest.lus spawn ./lus2lic -o /tmp/flo.lic should_work/flo.lus PASS: ./lus2lic {-o /tmp/flo.lic should_work/flo.lus} spawn ./lus2lic -ec -o /tmp/flo.ec should_work/flo.lus PASS: ./lus2lic {-ec -o /tmp/flo.ec should_work/flo.lus} -spawn ./ec2c -o /tmp/flo.c /tmp/flo.ec -PASS: ./ec2c {-o /tmp/flo.c /tmp/flo.ec} -spawn ./lus2lic -o /tmp/condact.lic should_work/condact.lus -PASS: ./lus2lic {-o /tmp/condact.lic should_work/condact.lus} -spawn ./lus2lic -ec -o /tmp/condact.ec should_work/condact.lus -PASS: ./lus2lic {-ec -o /tmp/condact.ec should_work/condact.lus} -spawn ./ec2c -o /tmp/condact.c /tmp/condact.ec -PASS: ./ec2c {-o /tmp/condact.c /tmp/condact.ec} +spawn ./myec2c -o /tmp/flo.c /tmp/flo.ec +PASS: ./myec2c {-o /tmp/flo.c /tmp/flo.ec} +spawn ../utils/test_lus2lic_no_node should_work/flo.lus ++ ./lus2lic should_work/flo.lus -n flo --gen-autotest -np +_flo_env.lut generated. +_flo_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/flo.lus ++ ./lus2lic should_work/flo.lus -n flo -ec -o flo.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:flo.ec:flo -rp env:lutin:_flo_env.lut -rp oracle:v6:_flo_oracle.lus:flo_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/flo.lus spawn ./lus2lic -o /tmp/cond01.lic should_work/cond01.lus PASS: ./lus2lic {-o /tmp/cond01.lic should_work/cond01.lus} spawn ./lus2lic -ec -o /tmp/cond01.ec should_work/cond01.lus PASS: ./lus2lic {-ec -o /tmp/cond01.ec should_work/cond01.lus} -spawn ./ec2c -o /tmp/cond01.c /tmp/cond01.ec -PASS: ./ec2c {-o /tmp/cond01.c /tmp/cond01.ec} +spawn ./myec2c -o /tmp/cond01.c /tmp/cond01.ec +PASS: ./myec2c {-o /tmp/cond01.c /tmp/cond01.ec} +spawn ../utils/test_lus2lic_no_node should_work/cond01.lus ++ ./lus2lic should_work/cond01.lus -n cond01 --gen-autotest -np +_cond01_env.lut generated. +_cond01_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/cond01.lus ++ ./lus2lic should_work/cond01.lus -n cond01 -ec -o cond01.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:cond01.ec:cond01 -rp env:lutin:_cond01_env.lut -rp oracle:v6:_cond01_oracle.lus:cond01_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/cond01.lus spawn ./lus2lic -o /tmp/shiftFill_ludic.lic should_work/shiftFill_ludic.lus PASS: ./lus2lic {-o /tmp/shiftFill_ludic.lic should_work/shiftFill_ludic.lus} spawn ./lus2lic -ec -o /tmp/shiftFill_ludic.ec should_work/shiftFill_ludic.lus PASS: ./lus2lic {-ec -o /tmp/shiftFill_ludic.ec should_work/shiftFill_ludic.lus} -spawn ./ec2c -o /tmp/shiftFill_ludic.c /tmp/shiftFill_ludic.ec -PASS: ./ec2c {-o /tmp/shiftFill_ludic.c /tmp/shiftFill_ludic.ec} +spawn ./myec2c -o /tmp/shiftFill_ludic.c /tmp/shiftFill_ludic.ec +PASS: ./myec2c {-o /tmp/shiftFill_ludic.c /tmp/shiftFill_ludic.ec} +spawn ../utils/test_lus2lic_no_node should_work/shiftFill_ludic.lus ++ ./lus2lic should_work/shiftFill_ludic.lus -n shiftFill_ludic --gen-autotest -np +_shiftFill_ludic_env.lut generated. +_shiftFill_ludic_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/shiftFill_ludic.lus ++ ./lus2lic should_work/shiftFill_ludic.lus -n shiftFill_ludic -ec -o shiftFill_ludic.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:shiftFill_ludic.ec:shiftFill_ludic -rp env:lutin:_shiftFill_ludic_env.lut -rp oracle:v6:_shiftFill_ludic_oracle.lus:shiftFill_ludic_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/shiftFill_ludic.lus spawn ./lus2lic -o /tmp/after.lic should_work/after.lus PASS: ./lus2lic {-o /tmp/after.lic should_work/after.lus} spawn ./lus2lic -ec -o /tmp/after.ec should_work/after.lus PASS: ./lus2lic {-ec -o /tmp/after.ec should_work/after.lus} -spawn ./ec2c -o /tmp/after.c /tmp/after.ec -PASS: ./ec2c {-o /tmp/after.c /tmp/after.ec} +spawn ./myec2c -o /tmp/after.c /tmp/after.ec +PASS: ./myec2c {-o /tmp/after.c /tmp/after.ec} +spawn ../utils/test_lus2lic_no_node should_work/after.lus ++ ./lus2lic should_work/after.lus -n after --gen-autotest -np +_after_env.lut generated. +_after_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/after.lus ++ ./lus2lic should_work/after.lus -n after -ec -o after.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:after.ec:after -rp env:lutin:_after_env.lut -rp oracle:v6:_after_oracle.lus:after_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/after.lus spawn ./lus2lic -o /tmp/arrays.lic should_work/arrays.lus PASS: ./lus2lic {-o /tmp/arrays.lic should_work/arrays.lus} spawn ./lus2lic -ec -o /tmp/arrays.ec should_work/arrays.lus PASS: ./lus2lic {-ec -o /tmp/arrays.ec should_work/arrays.lus} -spawn ./ec2c -o /tmp/arrays.c /tmp/arrays.ec -PASS: ./ec2c {-o /tmp/arrays.c /tmp/arrays.ec} -spawn ./lus2lic -o /tmp/eq1.lic should_work/eq1.lus -PASS: ./lus2lic {-o /tmp/eq1.lic should_work/eq1.lus} -spawn ./lus2lic -ec -o /tmp/eq1.ec should_work/eq1.lus -PASS: ./lus2lic {-ec -o /tmp/eq1.ec should_work/eq1.lus} -spawn ./ec2c -o /tmp/eq1.c /tmp/eq1.ec -PASS: ./ec2c {-o /tmp/eq1.c /tmp/eq1.ec} +spawn ./myec2c -o /tmp/arrays.c /tmp/arrays.ec +PASS: ./myec2c {-o /tmp/arrays.c /tmp/arrays.ec} +spawn ../utils/test_lus2lic_no_node should_work/arrays.lus ++ ./lus2lic should_work/arrays.lus -n arrays --gen-autotest -np +_arrays_env.lut generated. +_arrays_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/arrays.lus ++ ./lus2lic should_work/arrays.lus -n arrays -ec -o arrays.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:arrays.ec:arrays -rp env:lutin:_arrays_env.lut -rp oracle:v6:_arrays_oracle.lus:arrays_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/arrays.lus spawn ./lus2lic -o /tmp/nc3.lic should_work/nc3.lus PASS: ./lus2lic {-o /tmp/nc3.lic should_work/nc3.lus} spawn ./lus2lic -ec -o /tmp/nc3.ec should_work/nc3.lus PASS: ./lus2lic {-ec -o /tmp/nc3.ec should_work/nc3.lus} -spawn ./ec2c -o /tmp/nc3.c /tmp/nc3.ec -PASS: ./ec2c {-o /tmp/nc3.c /tmp/nc3.ec} +spawn ./myec2c -o /tmp/nc3.c /tmp/nc3.ec +PASS: ./myec2c {-o /tmp/nc3.c /tmp/nc3.ec} +spawn ../utils/test_lus2lic_no_node should_work/nc3.lus ++ ./lus2lic should_work/nc3.lus -n nc3 --gen-autotest -np +_nc3_env.lut generated. +_nc3_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/nc3.lus ++ ./lus2lic should_work/nc3.lus -n nc3 -ec -o nc3.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:nc3.ec:nc3 -rp env:lutin:_nc3_env.lut -rp oracle:v6:_nc3_oracle.lus:nc3_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/nc3.lus spawn ./lus2lic -o /tmp/speedcontrol.lic should_work/speedcontrol.lus PASS: ./lus2lic {-o /tmp/speedcontrol.lic should_work/speedcontrol.lus} spawn ./lus2lic -ec -o /tmp/speedcontrol.ec should_work/speedcontrol.lus PASS: ./lus2lic {-ec -o /tmp/speedcontrol.ec should_work/speedcontrol.lus} -spawn ./ec2c -o /tmp/speedcontrol.c /tmp/speedcontrol.ec -PASS: ./ec2c {-o /tmp/speedcontrol.c /tmp/speedcontrol.ec} +spawn ./myec2c -o /tmp/speedcontrol.c /tmp/speedcontrol.ec +PASS: ./myec2c {-o /tmp/speedcontrol.c /tmp/speedcontrol.ec} +spawn ../utils/test_lus2lic_no_node should_work/speedcontrol.lus ++ ./lus2lic should_work/speedcontrol.lus -n speedcontrol --gen-autotest -np +Error. A combinational cycle been detected in file "/home/jahier/lus2lic/test/should_work/speedcontrol.lus", line 1, col 5 to 16, token 'speedcontrol' on + v00 = speedcontrol::f1(counter) + counter = Lustre::arrow(0, v00) + v00 = speedcontrol::f1(counter) + +Hint: try to use --expand-nodes. + ++ echo Error +Error ++ exit 2 +FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/speedcontrol.lus spawn ./lus2lic -o /tmp/iterate.lic should_work/iterate.lus PASS: ./lus2lic {-o /tmp/iterate.lic should_work/iterate.lus} spawn ./lus2lic -ec -o /tmp/iterate.ec should_work/iterate.lus PASS: ./lus2lic {-ec -o /tmp/iterate.ec should_work/iterate.lus} -spawn ./ec2c -o /tmp/iterate.c /tmp/iterate.ec -PASS: ./ec2c {-o /tmp/iterate.c /tmp/iterate.ec} +spawn ./myec2c -o /tmp/iterate.c /tmp/iterate.ec +PASS: ./myec2c {-o /tmp/iterate.c /tmp/iterate.ec} +spawn ../utils/test_lus2lic_no_node should_work/iterate.lus ++ ./lus2lic should_work/iterate.lus -n iterate --gen-autotest -np +_iterate_env.lut generated. +_iterate_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/iterate.lus ++ ./lus2lic should_work/iterate.lus -n iterate -ec -o iterate.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:iterate.ec:iterate -rp env:lutin:_iterate_env.lut -rp oracle:v6:_iterate_oracle.lus:iterate_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/iterate.lus spawn ./lus2lic -o /tmp/overload.lic should_work/overload.lus PASS: ./lus2lic {-o /tmp/overload.lic should_work/overload.lus} spawn ./lus2lic -ec -o /tmp/overload.ec should_work/overload.lus PASS: ./lus2lic {-ec -o /tmp/overload.ec should_work/overload.lus} -spawn ./ec2c -o /tmp/overload.c /tmp/overload.ec -PASS: ./ec2c {-o /tmp/overload.c /tmp/overload.ec} +spawn ./myec2c -o /tmp/overload.c /tmp/overload.ec +PASS: ./myec2c {-o /tmp/overload.c /tmp/overload.ec} +spawn ../utils/test_lus2lic_no_node should_work/overload.lus ++ ./lus2lic should_work/overload.lus -n overload --gen-autotest -np +_overload_env.lut generated. +_overload_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/overload.lus ++ ./lus2lic should_work/overload.lus -n overload -ec -o overload.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:overload.ec:overload -rp env:lutin:_overload_env.lut -rp oracle:v6:_overload_oracle.lus:overload_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/overload.lus spawn ./lus2lic -o /tmp/PCOND.lic should_work/PCOND.lus PASS: ./lus2lic {-o /tmp/PCOND.lic should_work/PCOND.lus} spawn ./lus2lic -ec -o /tmp/PCOND.ec should_work/PCOND.lus PASS: ./lus2lic {-ec -o /tmp/PCOND.ec should_work/PCOND.lus} -spawn ./ec2c -o /tmp/PCOND.c /tmp/PCOND.ec -PASS: ./ec2c {-o /tmp/PCOND.c /tmp/PCOND.ec} +spawn ./myec2c -o /tmp/PCOND.c /tmp/PCOND.ec +PASS: ./myec2c {-o /tmp/PCOND.c /tmp/PCOND.ec} +spawn ../utils/test_lus2lic_no_node should_work/PCOND.lus ++ ./lus2lic should_work/PCOND.lus -n PCOND --gen-autotest -np +_PCOND_env.lut generated. +_PCOND_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/PCOND.lus ++ ./lus2lic should_work/PCOND.lus -n PCOND -ec -o PCOND.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:PCOND.ec:PCOND -rp env:lutin:_PCOND_env.lut -rp oracle:v6:_PCOND_oracle.lus:PCOND_oracle -go -l 10 -ns2c --stop-on-oracle-error +Error in lurette: Lv6errors.Compile_error(_, "\n*** clock error: The two following clocks are not compatible:\n***\t on base\n***\t on h0 on base\n") +Lurette launched a process that failed (exit 2). + +break signal catched + +lurettetop: bye! ++ echo error +error ++ exit 2 +FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/PCOND.lus spawn ./lus2lic -o /tmp/EDGE.lic should_work/EDGE.lus PASS: ./lus2lic {-o /tmp/EDGE.lic should_work/EDGE.lus} spawn ./lus2lic -ec -o /tmp/EDGE.ec should_work/EDGE.lus PASS: ./lus2lic {-ec -o /tmp/EDGE.ec should_work/EDGE.lus} -spawn ./ec2c -o /tmp/EDGE.c /tmp/EDGE.ec -PASS: ./ec2c {-o /tmp/EDGE.c /tmp/EDGE.ec} +spawn ./myec2c -o /tmp/EDGE.c /tmp/EDGE.ec +PASS: ./myec2c {-o /tmp/EDGE.c /tmp/EDGE.ec} +spawn ../utils/test_lus2lic_no_node should_work/EDGE.lus ++ ./lus2lic should_work/EDGE.lus -n EDGE --gen-autotest -np +_EDGE_env.lut generated. +_EDGE_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/EDGE.lus ++ ./lus2lic should_work/EDGE.lus -n EDGE -ec -o EDGE.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:EDGE.ec:EDGE -rp env:lutin:_EDGE_env.lut -rp oracle:v6:_EDGE_oracle.lus:EDGE_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/EDGE.lus spawn ./lus2lic -o /tmp/call03.lic should_work/call03.lus PASS: ./lus2lic {-o /tmp/call03.lic should_work/call03.lus} spawn ./lus2lic -ec -o /tmp/call03.ec should_work/call03.lus PASS: ./lus2lic {-ec -o /tmp/call03.ec should_work/call03.lus} -spawn ./ec2c -o /tmp/call03.c /tmp/call03.ec -PASS: ./ec2c {-o /tmp/call03.c /tmp/call03.ec} +spawn ./myec2c -o /tmp/call03.c /tmp/call03.ec +PASS: ./myec2c {-o /tmp/call03.c /tmp/call03.ec} +spawn ../utils/test_lus2lic_no_node should_work/call03.lus ++ ./lus2lic should_work/call03.lus -n call03 --gen-autotest -np +_call03_env.lut generated. +_call03_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/call03.lus ++ ./lus2lic should_work/call03.lus -n call03 -ec -o call03.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:call03.ec:call03 -rp env:lutin:_call03_env.lut -rp oracle:v6:_call03_oracle.lus:call03_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/call03.lus spawn ./lus2lic -o /tmp/count.lic should_work/count.lus PASS: ./lus2lic {-o /tmp/count.lic should_work/count.lus} spawn ./lus2lic -ec -o /tmp/count.ec should_work/count.lus PASS: ./lus2lic {-ec -o /tmp/count.ec should_work/count.lus} -spawn ./ec2c -o /tmp/count.c /tmp/count.ec -PASS: ./ec2c {-o /tmp/count.c /tmp/count.ec} +spawn ./myec2c -o /tmp/count.c /tmp/count.ec +PASS: ./myec2c {-o /tmp/count.c /tmp/count.ec} +spawn ../utils/test_lus2lic_no_node should_work/count.lus ++ ./lus2lic should_work/count.lus -n count --gen-autotest -np +_count_env.lut generated. +_count_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/count.lus ++ ./lus2lic should_work/count.lus -n count -ec -o count.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:count.ec:count -rp env:lutin:_count_env.lut -rp oracle:v6:_count_oracle.lus:count_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/count.lus spawn ./lus2lic -o /tmp/ck2.lic should_work/ck2.lus PASS: ./lus2lic {-o /tmp/ck2.lic should_work/ck2.lus} spawn ./lus2lic -ec -o /tmp/ck2.ec should_work/ck2.lus PASS: ./lus2lic {-ec -o /tmp/ck2.ec should_work/ck2.lus} -spawn ./ec2c -o /tmp/ck2.c /tmp/ck2.ec -PASS: ./ec2c {-o /tmp/ck2.c /tmp/ck2.ec} +spawn ./myec2c -o /tmp/ck2.c /tmp/ck2.ec +PASS: ./myec2c {-o /tmp/ck2.c /tmp/ck2.ec} +spawn ../utils/test_lus2lic_no_node should_work/ck2.lus ++ ./lus2lic should_work/ck2.lus -n ck2 --gen-autotest -np +_ck2_env.lut generated. +_ck2_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/ck2.lus ++ ./lus2lic should_work/ck2.lus -n ck2 -ec -o ck2.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:ck2.ec:ck2 -rp env:lutin:_ck2_env.lut -rp oracle:v6:_ck2_oracle.lus:ck2_oracle -go -l 10 -ns2c --stop-on-oracle-error +Error in lurette: Lv6errors.Compile_error(_, "\n*** clock error: The two following clocks are not compatible:\n***\t on base\n***\t on c on base\n") +Lurette launched a process that failed (exit 2). + +break signal catched + +lurettetop: bye! ++ echo error +error ++ exit 2 +FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/ck2.lus spawn ./lus2lic -o /tmp/X.lic should_work/X.lus PASS: ./lus2lic {-o /tmp/X.lic should_work/X.lus} spawn ./lus2lic -ec -o /tmp/X.ec should_work/X.lus PASS: ./lus2lic {-ec -o /tmp/X.ec should_work/X.lus} -spawn ./ec2c -o /tmp/X.c /tmp/X.ec -PASS: ./ec2c {-o /tmp/X.c /tmp/X.ec} +spawn ./myec2c -o /tmp/X.c /tmp/X.ec +PASS: ./myec2c {-o /tmp/X.c /tmp/X.ec} +spawn ../utils/test_lus2lic_no_node should_work/X.lus ++ ./lus2lic should_work/X.lus -n X --gen-autotest -np +_X_env.lut generated. +_X_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/X.lus ++ ./lus2lic should_work/X.lus -n X -ec -o X.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:X.ec:X -rp env:lutin:_X_env.lut -rp oracle:v6:_X_oracle.lus:X_oracle -go -l 10 -ns2c --stop-on-oracle-error +Error in lurette: Lv6errors.Compile_error(_, "\n*** clock error: The two following clocks are not compatible:\n***\t on base\n***\t on c on base\n") +Lurette launched a process that failed (exit 2). + +break signal catched + +lurettetop: bye! ++ echo error +error ++ exit 2 +FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/X.lus spawn ./lus2lic -o /tmp/Condact.lic should_work/Condact.lus PASS: ./lus2lic {-o /tmp/Condact.lic should_work/Condact.lus} spawn ./lus2lic -ec -o /tmp/Condact.ec should_work/Condact.lus PASS: ./lus2lic {-ec -o /tmp/Condact.ec should_work/Condact.lus} -spawn ./ec2c -o /tmp/Condact.c /tmp/Condact.ec -PASS: ./ec2c {-o /tmp/Condact.c /tmp/Condact.ec} +spawn ./myec2c -o /tmp/Condact.c /tmp/Condact.ec +PASS: ./myec2c {-o /tmp/Condact.c /tmp/Condact.ec} +spawn ../utils/test_lus2lic_no_node should_work/Condact.lus ++ ./lus2lic should_work/Condact.lus -n Condact --gen-autotest -np +*** Can not find package 'Condact' in the following packages: +*** 'Main' +*** 'TestCondact' +*** 'Util' ++ echo Error +Error ++ exit 2 +FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/Condact.lus spawn ./lus2lic -o /tmp/poussoir.lic should_work/poussoir.lus PASS: ./lus2lic {-o /tmp/poussoir.lic should_work/poussoir.lus} spawn ./lus2lic -ec -o /tmp/poussoir.ec should_work/poussoir.lus PASS: ./lus2lic {-ec -o /tmp/poussoir.ec should_work/poussoir.lus} -spawn ./ec2c -o /tmp/poussoir.c /tmp/poussoir.ec -PASS: ./ec2c {-o /tmp/poussoir.c /tmp/poussoir.ec} +spawn ./myec2c -o /tmp/poussoir.c /tmp/poussoir.ec +PASS: ./myec2c {-o /tmp/poussoir.c /tmp/poussoir.ec} +spawn ../utils/test_lus2lic_no_node should_work/poussoir.lus ++ ./lus2lic should_work/poussoir.lus -n poussoir --gen-autotest -np +_poussoir_env.lut generated. +_poussoir_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/poussoir.lus ++ ./lus2lic should_work/poussoir.lus -n poussoir -ec -o poussoir.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:poussoir.ec:poussoir -rp env:lutin:_poussoir_env.lut -rp oracle:v6:_poussoir_oracle.lus:poussoir_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/poussoir.lus spawn ./lus2lic -o /tmp/SWITCH1.lic should_work/SWITCH1.lus PASS: ./lus2lic {-o /tmp/SWITCH1.lic should_work/SWITCH1.lus} spawn ./lus2lic -ec -o /tmp/SWITCH1.ec should_work/SWITCH1.lus PASS: ./lus2lic {-ec -o /tmp/SWITCH1.ec should_work/SWITCH1.lus} -spawn ./ec2c -o /tmp/SWITCH1.c /tmp/SWITCH1.ec -PASS: ./ec2c {-o /tmp/SWITCH1.c /tmp/SWITCH1.ec} +spawn ./myec2c -o /tmp/SWITCH1.c /tmp/SWITCH1.ec +PASS: ./myec2c {-o /tmp/SWITCH1.c /tmp/SWITCH1.ec} +spawn ../utils/test_lus2lic_no_node should_work/SWITCH1.lus ++ ./lus2lic should_work/SWITCH1.lus -n SWITCH1 --gen-autotest -np +_SWITCH1_env.lut generated. +_SWITCH1_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/SWITCH1.lus ++ ./lus2lic should_work/SWITCH1.lus -n SWITCH1 -ec -o SWITCH1.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:SWITCH1.ec:SWITCH1 -rp env:lutin:_SWITCH1_env.lut -rp oracle:v6:_SWITCH1_oracle.lus:SWITCH1_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/SWITCH1.lus spawn ./lus2lic -o /tmp/clock1_2ms.lic should_work/clock1_2ms.lus PASS: ./lus2lic {-o /tmp/clock1_2ms.lic should_work/clock1_2ms.lus} spawn ./lus2lic -ec -o /tmp/clock1_2ms.ec should_work/clock1_2ms.lus PASS: ./lus2lic {-ec -o /tmp/clock1_2ms.ec should_work/clock1_2ms.lus} -spawn ./ec2c -o /tmp/clock1_2ms.c /tmp/clock1_2ms.ec -PASS: ./ec2c {-o /tmp/clock1_2ms.c /tmp/clock1_2ms.ec} -spawn ./lus2lic -o /tmp/merge.lic should_work/merge.lus -PASS: ./lus2lic {-o /tmp/merge.lic should_work/merge.lus} -spawn ./lus2lic -ec -o /tmp/merge.ec should_work/merge.lus -PASS: ./lus2lic {-ec -o /tmp/merge.ec should_work/merge.lus} -spawn ./ec2c -o /tmp/merge.c /tmp/merge.ec -PASS: ./ec2c {-o /tmp/merge.c /tmp/merge.ec} +spawn ./myec2c -o /tmp/clock1_2ms.c /tmp/clock1_2ms.ec +PASS: ./myec2c {-o /tmp/clock1_2ms.c /tmp/clock1_2ms.ec} +spawn ../utils/test_lus2lic_no_node should_work/clock1_2ms.lus ++ ./lus2lic should_work/clock1_2ms.lus -n clock1_2ms --gen-autotest -np +_clock1_2ms_env.lut generated. +_clock1_2ms_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/clock1_2ms.lus ++ ./lus2lic should_work/clock1_2ms.lus -n clock1_2ms -ec -o clock1_2ms.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:clock1_2ms.ec:clock1_2ms -rp env:lutin:_clock1_2ms_env.lut -rp oracle:v6:_clock1_2ms_oracle.lus:clock1_2ms_oracle -go -l 10 -ns2c --stop-on-oracle-error +Error in lurette: Lv6errors.Compile_error(_, "\n*** clock error: The two following clocks are not compatible:\n***\t on base\n***\t on Clock1ms on base\n") +Lurette launched a process that failed (exit 2). + +break signal catched + +lurettetop: bye! ++ echo error +error ++ exit 2 +FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/clock1_2ms.lus spawn ./lus2lic -o /tmp/decl.lic should_work/decl.lus PASS: ./lus2lic {-o /tmp/decl.lic should_work/decl.lus} spawn ./lus2lic -ec -o /tmp/decl.ec should_work/decl.lus PASS: ./lus2lic {-ec -o /tmp/decl.ec should_work/decl.lus} -spawn ./ec2c -o /tmp/decl.c /tmp/decl.ec -PASS: ./ec2c {-o /tmp/decl.c /tmp/decl.ec} +spawn ./myec2c -o /tmp/decl.c /tmp/decl.ec +PASS: ./myec2c {-o /tmp/decl.c /tmp/decl.ec} +spawn ../utils/test_lus2lic_no_node should_work/decl.lus ++ ./lus2lic should_work/decl.lus -n decl --gen-autotest -np +*** The soc of decl::decl is not defined. FINISH ME! +Extern node not yet supported, sorry + +*** oops: lus2lic internal error + File "src/lic2soc.ml", line 897, column 14 +*** when compiling lustre program should_work/decl.lus + +*** You migth want to sent a bug report to jahier@imag.fr ++ echo Error +Error ++ exit 2 +FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/decl.lus spawn ./lus2lic -o /tmp/bred_lv4.lic should_work/bred_lv4.lus PASS: ./lus2lic {-o /tmp/bred_lv4.lic should_work/bred_lv4.lus} spawn ./lus2lic -ec -o /tmp/bred_lv4.ec should_work/bred_lv4.lus PASS: ./lus2lic {-ec -o /tmp/bred_lv4.ec should_work/bred_lv4.lus} -spawn ./ec2c -o /tmp/bred_lv4.c /tmp/bred_lv4.ec -PASS: ./ec2c {-o /tmp/bred_lv4.c /tmp/bred_lv4.ec} +spawn ./myec2c -o /tmp/bred_lv4.c /tmp/bred_lv4.ec +PASS: ./myec2c {-o /tmp/bred_lv4.c /tmp/bred_lv4.ec} +spawn ../utils/test_lus2lic_no_node should_work/bred_lv4.lus ++ ./lus2lic should_work/bred_lv4.lus -n bred_lv4 --gen-autotest -np +_bred_lv4_env.lut generated. +_bred_lv4_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/bred_lv4.lus ++ ./lus2lic should_work/bred_lv4.lus -n bred_lv4 -ec -o bred_lv4.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:bred_lv4.ec:bred_lv4 -rp env:lutin:_bred_lv4_env.lut -rp oracle:v6:_bred_lv4_oracle.lus:bred_lv4_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/bred_lv4.lus spawn ./lus2lic -o /tmp/trivial2.lic should_work/trivial2.lus PASS: ./lus2lic {-o /tmp/trivial2.lic should_work/trivial2.lus} spawn ./lus2lic -ec -o /tmp/trivial2.ec should_work/trivial2.lus PASS: ./lus2lic {-ec -o /tmp/trivial2.ec should_work/trivial2.lus} -spawn ./ec2c -o /tmp/trivial2.c /tmp/trivial2.ec -PASS: ./ec2c {-o /tmp/trivial2.c /tmp/trivial2.ec} +spawn ./myec2c -o /tmp/trivial2.c /tmp/trivial2.ec +PASS: ./myec2c {-o /tmp/trivial2.c /tmp/trivial2.ec} +spawn ../utils/test_lus2lic_no_node should_work/trivial2.lus ++ ./lus2lic should_work/trivial2.lus -n trivial2 --gen-autotest -np +_trivial2_env.lut generated. +_trivial2_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/trivial2.lus ++ ./lus2lic should_work/trivial2.lus -n trivial2 -ec -o trivial2.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:trivial2.ec:trivial2 -rp env:lutin:_trivial2_env.lut -rp oracle:v6:_trivial2_oracle.lus:trivial2_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/trivial2.lus spawn ./lus2lic -o /tmp/param_node.lic should_work/param_node.lus PASS: ./lus2lic {-o /tmp/param_node.lic should_work/param_node.lus} spawn ./lus2lic -ec -o /tmp/param_node.ec should_work/param_node.lus PASS: ./lus2lic {-ec -o /tmp/param_node.ec should_work/param_node.lus} -spawn ./ec2c -o /tmp/param_node.c /tmp/param_node.ec -PASS: ./ec2c {-o /tmp/param_node.c /tmp/param_node.ec} +spawn ./myec2c -o /tmp/param_node.c /tmp/param_node.ec +PASS: ./myec2c {-o /tmp/param_node.c /tmp/param_node.ec} +spawn ../utils/test_lus2lic_no_node should_work/param_node.lus ++ ./lus2lic should_work/param_node.lus -n param_node --gen-autotest -np +_param_node_env.lut generated. +_param_node_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/param_node.lus ++ ./lus2lic should_work/param_node.lus -n param_node -ec -o param_node.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:param_node.ec:param_node -rp env:lutin:_param_node_env.lut -rp oracle:v6:_param_node_oracle.lus:param_node_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/param_node.lus spawn ./lus2lic -o /tmp/simple.lic should_work/simple.lus PASS: ./lus2lic {-o /tmp/simple.lic should_work/simple.lus} spawn ./lus2lic -ec -o /tmp/simple.ec should_work/simple.lus PASS: ./lus2lic {-ec -o /tmp/simple.ec should_work/simple.lus} -spawn ./ec2c -o /tmp/simple.c /tmp/simple.ec -PASS: ./ec2c {-o /tmp/simple.c /tmp/simple.ec} +spawn ./myec2c -o /tmp/simple.c /tmp/simple.ec +PASS: ./myec2c {-o /tmp/simple.c /tmp/simple.ec} +spawn ../utils/test_lus2lic_no_node should_work/simple.lus ++ ./lus2lic should_work/simple.lus -n simple --gen-autotest -np +Extern node not yet supported, sorry + +*** oops: lus2lic internal error + File "src/socExec.ml", line 210, column 4 +*** when compiling lustre program should_work/simple.lus + +*** You migth want to sent a bug report to jahier@imag.fr ++ echo Error +Error ++ exit 2 +FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/simple.lus spawn ./lus2lic -o /tmp/func_with_body.lic should_work/func_with_body.lus PASS: ./lus2lic {-o /tmp/func_with_body.lic should_work/func_with_body.lus} spawn ./lus2lic -ec -o /tmp/func_with_body.ec should_work/func_with_body.lus PASS: ./lus2lic {-ec -o /tmp/func_with_body.ec should_work/func_with_body.lus} -spawn ./ec2c -o /tmp/func_with_body.c /tmp/func_with_body.ec -PASS: ./ec2c {-o /tmp/func_with_body.c /tmp/func_with_body.ec} +spawn ./myec2c -o /tmp/func_with_body.c /tmp/func_with_body.ec +PASS: ./myec2c {-o /tmp/func_with_body.c /tmp/func_with_body.ec} +spawn ../utils/test_lus2lic_no_node should_work/func_with_body.lus ++ ./lus2lic should_work/func_with_body.lus -n func_with_body --gen-autotest -np +_func_with_body_env.lut generated. +_func_with_body_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/func_with_body.lus ++ ./lus2lic should_work/func_with_body.lus -n func_with_body -ec -o func_with_body.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:func_with_body.ec:func_with_body -rp env:lutin:_func_with_body_env.lut -rp oracle:v6:_func_with_body_oracle.lus:func_with_body_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/func_with_body.lus spawn ./lus2lic -o /tmp/minus.lic should_work/minus.lus PASS: ./lus2lic {-o /tmp/minus.lic should_work/minus.lus} spawn ./lus2lic -ec -o /tmp/minus.ec should_work/minus.lus PASS: ./lus2lic {-ec -o /tmp/minus.ec should_work/minus.lus} -spawn ./ec2c -o /tmp/minus.c /tmp/minus.ec -PASS: ./ec2c {-o /tmp/minus.c /tmp/minus.ec} +spawn ./myec2c -o /tmp/minus.c /tmp/minus.ec +PASS: ./myec2c {-o /tmp/minus.c /tmp/minus.ec} +spawn ../utils/test_lus2lic_no_node should_work/minus.lus ++ ./lus2lic should_work/minus.lus -n minus --gen-autotest -np +_minus_env.lut generated. +_minus_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_work/minus.lus ++ ./lus2lic should_work/minus.lus -n minus -ec -o minus.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:minus.ec:minus -rp env:lutin:_minus_env.lut -rp oracle:v6:_minus_oracle.lus:minus_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +PASS: ../utils/test_lus2lic_no_node should_work/minus.lus spawn ./lus2lic -o /tmp/remplissage-1.0.lic should_work/remplissage-1.0.lus PASS: ./lus2lic {-o /tmp/remplissage-1.0.lic should_work/remplissage-1.0.lus} spawn ./lus2lic -ec -o /tmp/remplissage-1.0.ec should_work/remplissage-1.0.lus PASS: ./lus2lic {-ec -o /tmp/remplissage-1.0.ec should_work/remplissage-1.0.lus} -spawn ./ec2c -o /tmp/remplissage-1.0.c /tmp/remplissage-1.0.ec -PASS: ./ec2c {-o /tmp/remplissage-1.0.c /tmp/remplissage-1.0.ec} -spawn ./lus2lic -o /tmp/old_style_and_pack.lic should_fail/syntax/old_style_and_pack.lus +spawn ./myec2c -o /tmp/remplissage-1.0.c /tmp/remplissage-1.0.ec +PASS: ./myec2c {-o /tmp/remplissage-1.0.c /tmp/remplissage-1.0.ec} +spawn ../utils/test_lus2lic_no_node should_work/remplissage-1.0.lus ++ ./lus2lic should_work/remplissage-1.0.lus -n remplissage-1.0 --gen-autotest -np +*** Can not find package 'remplissage-1.0' in the following packages: +*** 'util' ++ echo Error +Error ++ exit 2 +FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/remplissage-1.0.lus +spawn ../utils/test_lus2lic_no_node should_fail/syntax/old_style_and_pack.lus ++ ./lus2lic should_fail/syntax/old_style_and_pack.lus -n old_style_and_pack --gen-autotest -np *** Error in file "/home/jahier/lus2lic/test/should_fail/syntax/old_style_and_pack.lus", line 17, col 0 to 3, token 'node': *** syntax error -XFAIL: Test bad programs (syntax): lus2lic {-o /tmp/old_style_and_pack.lic should_fail/syntax/old_style_and_pack.lus} -spawn ./lus2lic -o /tmp/record.lic should_fail/syntax/record.lus ++ echo Error +Error ++ exit 2 +XFAIL: Test bad programs (syntax): test_lus2lic_no_node should_fail/syntax/old_style_and_pack.lus +spawn ../utils/test_lus2lic_no_node should_fail/syntax/record.lus ++ ./lus2lic should_fail/syntax/record.lus -n record --gen-autotest -np *** Error in file "/home/jahier/lus2lic/test/should_fail/syntax/record.lus", line 7, col 28 to 28, token '{': *** syntax error -XFAIL: Test bad programs (syntax): lus2lic {-o /tmp/record.lic should_fail/syntax/record.lus} -spawn ./lus2lic -o /tmp/parametric_node3.lic should_fail/type/parametric_node3.lus -*** Error in file "/home/jahier/lus2lic/test/should_fail/type/parametric_node3.lus", line 10, col 17 to 22, token 'toto_n': ++ echo Error +Error ++ exit 2 +XFAIL: Test bad programs (syntax): test_lus2lic_no_node should_fail/syntax/record.lus +spawn ../utils/test_lus2lic_no_node should_fail/type/parametric_node3.lus ++ ./lus2lic should_fail/type/parametric_node3.lus -n parametric_node3 --gen-autotest -np +*** Error in file "/home/jahier/lus2lic/test/should_fail/type/parametric_node3.lus", line 10, col 24 to 29, token 'toto_n': *** Bad number of (static) arguments: 3 expected, and 2 provided. -XFAIL: Test bad programs (type): lus2lic {-o /tmp/parametric_node3.lic should_fail/type/parametric_node3.lus} -spawn ./lus2lic -o /tmp/parametric_node.lic should_fail/type/parametric_node.lus ++ echo Error +Error ++ exit 2 +XFAIL: Test bad programs (type): test_lus2lic_no_node should_fail/type/parametric_node3.lus +spawn ../utils/test_lus2lic_no_node should_fail/type/parametric_node.lus ++ ./lus2lic should_fail/type/parametric_node.lus -n parametric_node --gen-autotest -np *** Error in file "/home/jahier/lus2lic/test/should_fail/type/parametric_node.lus", line 4, col 16 to 16, token 'n': *** can't eval type: bad array size, int expected but get real -XFAIL: Test bad programs (type): lus2lic {-o /tmp/parametric_node.lic should_fail/type/parametric_node.lus} -spawn ./lus2lic -o /tmp/merge_bad_enum.lic should_fail/type/merge_bad_enum.lus ++ echo Error +Error ++ exit 2 +XFAIL: Test bad programs (type): test_lus2lic_no_node should_fail/type/parametric_node.lus +spawn ../utils/test_lus2lic_no_node should_fail/type/t1.lus ++ ./lus2lic should_fail/type/t1.lus -n t1 --gen-autotest -np +*** Error in file "/home/jahier/lus2lic/test/should_fail/type/t1.lus", line 40, col 2 to 10, token 'fold_left': +*** +** bool^8 and bool * bool^8 are not unifiable (bad arity) + ++ echo Error +Error ++ exit 2 +XFAIL: Test bad programs (type): test_lus2lic_no_node should_fail/type/t1.lus +spawn ../utils/test_lus2lic_no_node should_fail/type/merge_bad_enum.lus ++ ./lus2lic should_fail/type/merge_bad_enum.lus -n merge_bad_enum --gen-autotest -np *** Error in file "/home/jahier/lus2lic/test/should_fail/type/merge_bad_enum.lus", line 9, col 14 to 16, token 'clk': *** type error: type error in a merge branch: merge_bad_enum::trival was expected, but merge_bad_enum::okko was provided. -XFAIL: Test bad programs (type): lus2lic {-o /tmp/merge_bad_enum.lic should_fail/type/merge_bad_enum.lus} -spawn ./lus2lic -o /tmp/condact2.lic should_fail/type/condact2.lus ++ echo Error +Error ++ exit 2 +XFAIL: Test bad programs (type): test_lus2lic_no_node should_fail/type/merge_bad_enum.lus +spawn ../utils/test_lus2lic_no_node should_fail/type/condact2.lus ++ ./lus2lic should_fail/type/condact2.lus -n condact2 --gen-autotest -np *** Error in file "/home/jahier/lus2lic/test/should_fail/type/condact2.lus", line 5, col 5 to 11, token 'condact': *** type error: *** while unifing (bool * int * int) with (int * int * int) *** bool can't be matched by int -XFAIL: Test bad programs (type): lus2lic {-o /tmp/condact2.lic should_fail/type/condact2.lus} -spawn ./lus2lic -o /tmp/merge_bad_type.lic should_fail/type/merge_bad_type.lus ++ echo Error +Error ++ exit 2 +XFAIL: Test bad programs (type): test_lus2lic_no_node should_fail/type/condact2.lus +spawn ../utils/test_lus2lic_no_node should_fail/type/merge_bad_type.lus ++ ./lus2lic should_fail/type/merge_bad_type.lus -n merge_bad_type --gen-autotest -np *** Error in file "/home/jahier/lus2lic/test/should_fail/type/merge_bad_type.lus", line 8, col 14 to 16, token 'clk': *** type error: types differ in merge branches: real <> int -XFAIL: Test bad programs (type): lus2lic {-o /tmp/merge_bad_type.lic should_fail/type/merge_bad_type.lus} -spawn ./lus2lic -o /tmp/packages.lic should_fail/type/packages.lus -*** Error in file "/home/jahier/lus2lic/test/should_fail/type/packages.lus", line 31, col 9 to 14, token 'preced': -*** provided node for inter::preced is not compatible with its implementation: -*** int and inter::selType are not unifiable - -XFAIL: Test bad programs (type): lus2lic {-o /tmp/packages.lic should_fail/type/packages.lus} -spawn ./lus2lic -o /tmp/packages2.lic should_fail/type/packages2.lus -*** Error in file "/home/jahier/lus2lic/test/should_fail/type/packages2.lus", line 5, col 7 to 7, token 'n': -*** provided node for stupid::n is not compatible with its implementation: -*** stupid::t1 <> int - -XFAIL: Test bad programs (type): lus2lic {-o /tmp/packages2.lic should_fail/type/packages2.lus} -spawn ./lus2lic -o /tmp/Gyro.lic should_fail/type/Gyro.lus ++ echo Error +Error ++ exit 2 +XFAIL: Test bad programs (type): test_lus2lic_no_node should_fail/type/merge_bad_type.lus +spawn ../utils/test_lus2lic_no_node should_fail/type/packages.lus ++ ./lus2lic should_fail/type/packages.lus -n packages --gen-autotest -np +*** Can not find package 'packages' in the following packages: +*** 'pbool' +*** 'mainPack' +*** 'pint' +*** 'inter' +*** 'preal' ++ echo Error +Error ++ exit 2 +XFAIL: Test bad programs (type): test_lus2lic_no_node should_fail/type/packages.lus +spawn ../utils/test_lus2lic_no_node should_fail/type/packages2.lus ++ ./lus2lic should_fail/type/packages2.lus -n packages2 --gen-autotest -np +*** Can not find package 'packages2' in the following packages: +*** 'stupid' ++ echo Error +Error ++ exit 2 +XFAIL: Test bad programs (type): test_lus2lic_no_node should_fail/type/packages2.lus +spawn ../utils/test_lus2lic_no_node should_fail/type/Gyro.lus ++ ./lus2lic should_fail/type/Gyro.lus -n Gyro --gen-autotest -np *** Error in file "/home/jahier/lus2lic/test/should_fail/type/Gyro.lus", line 11, col 41 to 41, token ',': *** syntax error -XFAIL: Test bad programs (type): lus2lic {-o /tmp/Gyro.lic should_fail/type/Gyro.lus} -spawn ./lus2lic -o /tmp/Gyro-2.lic should_fail/type/Gyro-2.lus -*** Error in file "/home/jahier/lus2lic/test/should_fail/type/Gyro-2.lus", line 54, col 0 to 2, token 'let': -*** syntax error - -XFAIL: Test bad programs (type): lus2lic {-o /tmp/Gyro-2.lic should_fail/type/Gyro-2.lus} -spawn ./lus2lic -o /tmp/merge_bad.lic should_fail/type/merge_bad.lus ++ echo Error +Error ++ exit 2 +XFAIL: Test bad programs (type): test_lus2lic_no_node should_fail/type/Gyro.lus +spawn ../utils/test_lus2lic_no_node should_fail/type/merge_bad.lus ++ ./lus2lic should_fail/type/merge_bad.lus -n merge_bad --gen-autotest -np *** Error in file "/home/jahier/lus2lic/test/should_fail/type/merge_bad.lus", line 7, col 14 to 16, token 'clk': *** The merge mixes booleans and enums -XFAIL: Test bad programs (type): lus2lic {-o /tmp/merge_bad.lic should_fail/type/merge_bad.lus} -spawn ./lus2lic -o /tmp/merge_bad_clk.lic should_fail/type/merge_bad_clk.lus ++ echo Error +Error ++ exit 2 +XFAIL: Test bad programs (type): test_lus2lic_no_node should_fail/type/merge_bad.lus +spawn ../utils/test_lus2lic_no_node should_fail/type/merge_bad_clk.lus ++ ./lus2lic should_fail/type/merge_bad_clk.lus -n merge_bad_clk --gen-autotest -np *** Error in file "/home/jahier/lus2lic/test/should_fail/type/merge_bad_clk.lus", line 9, col 9 to 12, token 'Pile': *** -*** clock error: The two following clocks are not unifiable: +*** clock error: The two following clocks are not compatible: *** on merge_bad_clk::Pile(clk) on base *** on merge_bad_clk::Face(clk) on base -XFAIL: Test bad programs (type): lus2lic {-o /tmp/merge_bad_clk.lic should_fail/type/merge_bad_clk.lus} -spawn ./lus2lic -o /tmp/parametric_node4.lic should_fail/type/parametric_node4.lus ++ echo Error +Error ++ exit 2 +XFAIL: Test bad programs (type): test_lus2lic_no_node should_fail/type/merge_bad_clk.lus +spawn ../utils/test_lus2lic_no_node should_fail/type/parametric_node4.lus ++ ./lus2lic should_fail/type/parametric_node4.lus -n parametric_node4 --gen-autotest -np *** Error in file "/home/jahier/lus2lic/test/should_fail/type/parametric_node4.lus", line 4, col 16 to 16, token 'n': *** can't eval type: bad array size, int expected but get real -XFAIL: Test bad programs (type): lus2lic {-o /tmp/parametric_node4.lic should_fail/type/parametric_node4.lus} -spawn ./lus2lic -o /tmp/merge_not_exhaustive.lic should_fail/type/merge_not_exhaustive.lus -XPASS: Test bad programs (type): lus2lic {-o /tmp/merge_not_exhaustive.lic should_fail/type/merge_not_exhaustive.lus} -spawn ./lus2lic -o /tmp/const2.lic should_fail/type/const2.lus -*** Error in file "/home/jahier/lus2lic/test/should_fail/type/const2.lus", line 16, col 11 to 12, token '<>': -*** type error: -*** type 'int * real' was provided whereas -*** type 'any * any' was expected -*** -*** int and real are not unifiable ++ echo Error +Error ++ exit 2 +XFAIL: Test bad programs (type): test_lus2lic_no_node should_fail/type/parametric_node4.lus +spawn ../utils/test_lus2lic_no_node should_fail/type/merge_node.lus ++ ./lus2lic should_fail/type/merge_node.lus -n merge_node --gen-autotest -np +*** Error in file "/home/jahier/lus2lic/test/should_fail/type/merge_node.lus", line 8, col 13 to 13, token ':': +*** syntax error + ++ echo Error +Error ++ exit 2 +XFAIL: Test bad programs (type): test_lus2lic_no_node should_fail/type/merge_node.lus +spawn ../utils/test_lus2lic_no_node should_fail/type/merge_not_exhaustive.lus ++ ./lus2lic should_fail/type/merge_not_exhaustive.lus -n merge_not_exhaustive --gen-autotest -np +_merge_not_exhaustive_env.lut generated. +_merge_not_exhaustive_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_fail/type/merge_not_exhaustive.lus ++ ./lus2lic should_fail/type/merge_not_exhaustive.lus -n merge_not_exhaustive -ec -o merge_not_exhaustive.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:merge_not_exhaustive.ec:merge_not_exhaustive -rp env:lutin:_merge_not_exhaustive_env.lut -rp oracle:v6:_merge_not_exhaustive_oracle.lus:merge_not_exhaustive_oracle -go -l 10 -ns2c --stop-on-oracle-error +Error in lurette: Failure("trival: unsupported type.\n") +Lurette launched a process that failed (exit 2). + +break signal catched + +lurettetop: bye! ++ echo error +error ++ exit 2 +XFAIL: Test bad programs (type): test_lus2lic_no_node should_fail/type/merge_not_exhaustive.lus +spawn ../utils/test_lus2lic_no_node should_fail/type/const2.lus ++ ./lus2lic should_fail/type/const2.lus -n const2 --gen-autotest -np +_const2_env.lut generated. +_const2_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_fail/type/const2.lus ++ ./lus2lic should_fail/type/const2.lus -n const2 -ec -o const2.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:const2.ec:const2 -rp env:lutin:_const2_env.lut -rp oracle:v6:_const2_oracle.lus:const2_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + -XFAIL: Test bad programs (type): lus2lic {-o /tmp/const2.lic should_fail/type/const2.lus} -spawn ./lus2lic -o /tmp/ts02.lic should_fail/type/ts02.lus +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +XPASS: Test bad programs (type): test_lus2lic_no_node should_fail/type/const2.lus +spawn ../utils/test_lus2lic_no_node should_fail/type/ts02.lus ++ ./lus2lic should_fail/type/ts02.lus -n ts02 --gen-autotest -np *** Error in file "/home/jahier/lus2lic/test/should_fail/type/ts02.lus", line 6, col 9 to 9, token '+': *** type error: *** type 'real * int' was provided whereas @@ -1590,116 +7179,334 @@ spawn ./lus2lic -o /tmp/ts02.lic should_fail/type/ts02.lus *** *** real and int are not unifiable -XFAIL: Test bad programs (type): lus2lic {-o /tmp/ts02.lic should_fail/type/ts02.lus} -spawn ./lus2lic -o /tmp/parametric_node2.lic should_fail/type/parametric_node2.lus -XPASS: Test bad programs (type): lus2lic {-o /tmp/parametric_node2.lic should_fail/type/parametric_node2.lus} -spawn ./lus2lic -o /tmp/merge.lic should_fail/type/merge.lus -*** Error in file "/home/jahier/lus2lic/test/should_fail/type/merge.lus", line 8, col 13 to 13, token ':': ++ echo Error +Error ++ exit 2 +XFAIL: Test bad programs (type): test_lus2lic_no_node should_fail/type/ts02.lus +spawn ../utils/test_lus2lic_no_node should_fail/type/parametric_node2.lus ++ ./lus2lic should_fail/type/parametric_node2.lus -n parametric_node2 --gen-autotest -np +_parametric_node2_env.lut generated. +_parametric_node2_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_fail/type/parametric_node2.lus ++ ./lus2lic should_fail/type/parametric_node2.lus -n parametric_node2 -ec -o parametric_node2.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:parametric_node2.ec:parametric_node2 -rp env:lutin:_parametric_node2_env.lut -rp oracle:v6:_parametric_node2_oracle.lus:parametric_node2_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +XPASS: Test bad programs (type): test_lus2lic_no_node should_fail/type/parametric_node2.lus +spawn ../utils/test_lus2lic_no_node should_fail/type/Gyro2.lus ++ ./lus2lic should_fail/type/Gyro2.lus -n Gyro2 --gen-autotest -np +*** Error in file "/home/jahier/lus2lic/test/should_fail/type/Gyro2.lus", line 54, col 0 to 2, token 'let': *** syntax error -XFAIL: Test bad programs (type): lus2lic {-o /tmp/merge.lic should_fail/type/merge.lus} -spawn ./lus2lic -o /tmp/when_enum.lic should_fail/clock/when_enum.lus ++ echo Error +Error ++ exit 2 +XFAIL: Test bad programs (type): test_lus2lic_no_node should_fail/type/Gyro2.lus +spawn ../utils/test_lus2lic_no_node should_fail/clock/when_enum.lus ++ ./lus2lic should_fail/clock/when_enum.lus -n when_enum --gen-autotest -np *** Error in file "/home/jahier/lus2lic/test/should_fail/clock/when_enum.lus", line 10, col 11 to 14, token 'toto': *** -*** clock error: The two following clocks are not unifiable: +*** clock error: The two following clocks are not compatible: *** on when_enum::A(a) on base *** on clk on base -XFAIL: Test bad programs (clock): lus2lic {-o /tmp/when_enum.lic should_fail/clock/when_enum.lus} -spawn ./lus2lic -o /tmp/bad_call02.lic should_fail/clock/bad_call02.lus ++ echo Error +Error ++ exit 2 +XFAIL: Test bad programs (clock): test_lus2lic_no_node should_fail/clock/when_enum.lus +spawn ../utils/test_lus2lic_no_node should_fail/clock/bad_call02.lus ++ ./lus2lic should_fail/clock/bad_call02.lus -n bad_call02 --gen-autotest -np *** Error in file "/home/jahier/lus2lic/test/should_fail/clock/bad_call02.lus", line 6, col 3 to 3, token '=': *** -*** clock error: The two following clocks are not unifiable: +*** clock error: The two following clocks are not compatible: *** on base *** on c on base -XFAIL: Test bad programs (clock): lus2lic {-o /tmp/bad_call02.lic should_fail/clock/bad_call02.lus} -spawn ./lus2lic -o /tmp/inonout.lic should_fail/clock/inonout.lus ++ echo Error +Error ++ exit 2 +XFAIL: Test bad programs (clock): test_lus2lic_no_node should_fail/clock/bad_call02.lus +spawn ../utils/test_lus2lic_no_node should_fail/clock/inonout.lus ++ ./lus2lic should_fail/clock/inonout.lus -n inonout --gen-autotest -np *** Error in file "/home/jahier/lus2lic/test/should_fail/clock/inonout.lus", line 3, col 45 to 45, token 'c': *** unknown variable (c) -XFAIL: Test bad programs (clock): lus2lic {-o /tmp/inonout.lic should_fail/clock/inonout.lus} -spawn ./lus2lic -o /tmp/clock.lic should_fail/clock/clock.lus ++ echo Error +Error ++ exit 2 +XFAIL: Test bad programs (clock): test_lus2lic_no_node should_fail/clock/inonout.lus +spawn ../utils/test_lus2lic_no_node should_fail/clock/clock.lus ++ ./lus2lic should_fail/clock/clock.lus -n clock --gen-autotest -np *** Error in file "/home/jahier/lus2lic/test/should_fail/clock/clock.lus", line 23, col 11 to 16, token 'clock4': *** -*** clock error: The two following clocks are not unifiable: +*** clock error: The two following clocks are not compatible: *** on d on c on base *** on u on base -XFAIL: Test bad programs (clock): lus2lic {-o /tmp/clock.lic should_fail/clock/clock.lus} -spawn ./lus2lic -o /tmp/bad_id.lic should_fail/clock/bad_id.lus -*** Error in file "/home/jahier/lus2lic/test/should_fail/clock/bad_id.lus", line 3, col 5 to 8, token 'toto': ++ echo Error +Error ++ exit 2 +XFAIL: Test bad programs (clock): test_lus2lic_no_node should_fail/clock/clock.lus +spawn ../utils/test_lus2lic_no_node should_fail/clock/bad_id.lus ++ ./lus2lic should_fail/clock/bad_id.lus -n bad_id --gen-autotest -np +*** Error in file "/home/jahier/lus2lic/test/should_fail/clock/bad_id.lus", line 3, col 5 to 10, token 'bad_id': *** *** Unknown ident: b -XFAIL: Test bad programs (clock): lus2lic {-o /tmp/bad_id.lic should_fail/clock/bad_id.lus} -spawn ./lus2lic -o /tmp/clock2.lic should_fail/clock/clock2.lus ++ echo Error +Error ++ exit 2 +XFAIL: Test bad programs (clock): test_lus2lic_no_node should_fail/clock/bad_id.lus +spawn ../utils/test_lus2lic_no_node should_fail/clock/clock2.lus ++ ./lus2lic should_fail/clock/clock2.lus -n clock2 --gen-autotest -np *** Error in file "/home/jahier/lus2lic/test/should_fail/clock/clock2.lus", line 6, col 16 to 19, token 'when': *** the type of a clock cannot be int -XFAIL: Test bad programs (clock): lus2lic {-o /tmp/clock2.lic should_fail/clock/clock2.lus} -spawn ./lus2lic -o /tmp/deploop.lic should_fail/semantics/deploop.lus -XPASS: Test bad programs (semantics): lus2lic {-o /tmp/deploop.lic should_fail/semantics/deploop.lus} -spawn ./lus2lic -o /tmp/const3.lic should_fail/semantics/const3.lus -*** Error in file "/home/jahier/lus2lic/test/should_fail/semantics/const3.lus", line 2, col 16 to 16, token '/': -*** -*** can't eval constant: reals cannot be evaluated, sorry. ++ echo Error +Error ++ exit 2 +XFAIL: Test bad programs (clock): test_lus2lic_no_node should_fail/clock/clock2.lus +spawn ../utils/test_lus2lic_no_node should_fail/semantics/aux.lus ++ ./lus2lic should_fail/semantics/aux.lus -n aux --gen-autotest -np +_aux_env.lut generated. +_aux_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_fail/semantics/aux.lus ++ ./lus2lic should_fail/semantics/aux.lus -n aux -ec -o aux.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:aux.ec:aux -rp env:lutin:_aux_env.lut -rp oracle:v6:_aux_oracle.lus:aux_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +#ERROR: Output takes on nil +RifIO.Bye +Lurette launched a process that failed (exit 2). + +break signal catched + +lurettetop: bye! ++ echo error +error ++ exit 2 +XPASS: Test bad programs (semantics): test_lus2lic_no_node should_fail/semantics/aux.lus +spawn ../utils/test_lus2lic_no_node should_fail/semantics/deploop.lus ++ ./lus2lic should_fail/semantics/deploop.lus -n deploop --gen-autotest -np +Error. A combinational cycle been detected in file "/home/jahier/lus2lic/test/should_fail/semantics/deploop.lus", line 6, col 5 to 11, token 'deploop' on + v00 = (z.y) + v05 = (z.y) + v00 = (z.y) + v06 = (v05.y) + v01 = (v00.y) + z.x.x = Lustre::arrow(0., v01) + ok = Lustre::lt(v06, v08) + +Hint: try to use --expand-nodes. + ++ echo Error +Error ++ exit 2 +XFAIL: Test bad programs (semantics): test_lus2lic_no_node should_fail/semantics/deploop.lus +spawn ../utils/test_lus2lic_no_node should_fail/semantics/const3.lus ++ ./lus2lic should_fail/semantics/const3.lus -n const3 --gen-autotest -np +_const3_env.lut generated. +_const3_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_fail/semantics/const3.lus ++ ./lus2lic should_fail/semantics/const3.lus -n const3 -ec -o const3.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:const3.ec:const3 -rp env:lutin:_const3_env.lut -rp oracle:v6:_const3_oracle.lus:const3_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit -XFAIL: Test bad programs (semantics): lus2lic {-o /tmp/const3.lic should_fail/semantics/const3.lus} -spawn ./lus2lic -o /tmp/not_a_constant.lic should_fail/semantics/not_a_constant.lus + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +XPASS: Test bad programs (semantics): test_lus2lic_no_node should_fail/semantics/const3.lus +spawn ../utils/test_lus2lic_no_node should_fail/semantics/not_a_constant.lus ++ ./lus2lic should_fail/semantics/not_a_constant.lus -n not_a_constant --gen-autotest -np *** Error in file "/home/jahier/lus2lic/test/should_fail/semantics/not_a_constant.lus", line 10, col 22 to 23, token '--': *** syntax error -XFAIL: Test bad programs (semantics): lus2lic {-o /tmp/not_a_constant.lic should_fail/semantics/not_a_constant.lus} -spawn ./lus2lic -o /tmp/sincos.lic should_fail/semantics/sincos.lus -XPASS: Test bad programs (semantics): lus2lic {-o /tmp/sincos.lic should_fail/semantics/sincos.lus} -spawn ./lus2lic -o /tmp/tranche.lic should_fail/semantics/tranche.lus -*** Error in file "/home/jahier/lus2lic/test/should_fail/semantics/tranche.lus", line 7, col 5 to 5, token 'n': -*** -*** can't eval constant: -*** cannot access this extern constant value ++ echo Error +Error ++ exit 2 +XFAIL: Test bad programs (semantics): test_lus2lic_no_node should_fail/semantics/not_a_constant.lus +spawn ../utils/test_lus2lic_no_node should_fail/semantics/X1.lus ++ ./lus2lic should_fail/semantics/X1.lus -n X1 --gen-autotest -np +_X1_env.lut generated. +_X1_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_fail/semantics/X1.lus ++ ./lus2lic should_fail/semantics/X1.lus -n X1 -ec -o X1.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:X1.ec:X1 -rp env:lutin:_X1_env.lut -rp oracle:v6:_X1_oracle.lus:X1_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +XPASS: Test bad programs (semantics): test_lus2lic_no_node should_fail/semantics/X1.lus +spawn ../utils/test_lus2lic_no_node should_fail/semantics/sincos.lus ++ ./lus2lic should_fail/semantics/sincos.lus -n sincos --gen-autotest -np +Error. A combinational cycle been detected in file "/home/jahier/lus2lic/test/should_fail/semantics/sincos.lus", line 2, col 5 to 10, token 'sincos' on + v00 = sincos::integrator2(cos, 0.1, 0.0) + v02 = sincos::integrator1(v01, 0.1, 1.0) + v01 = Lustre::uminus(sin) + cos = Lustre::times(omega, v02) + sin = Lustre::times(omega, v00) + v00 = sincos::integrator2(cos, 0.1, 0.0) -XFAIL: Test bad programs (semantics): lus2lic {-o /tmp/tranche.lic should_fail/semantics/tranche.lus} -spawn ./lus2lic -o /tmp/import2.lic should_fail/semantics/import2.lus +Hint: try to use --expand-nodes. + ++ echo Error +Error ++ exit 2 +XFAIL: Test bad programs (semantics): test_lus2lic_no_node should_fail/semantics/sincos.lus +spawn ../utils/test_lus2lic_no_node should_fail/semantics/test_const.lus ++ ./lus2lic should_fail/semantics/test_const.lus -n test_const --gen-autotest -np +*** Error in file "/home/jahier/lus2lic/test/should_fail/semantics/test_const.lus", line 19, col 41 to 42, token 'c4': +*** bad field declaration, ident already linked at line:19, col:9 to 10 + ++ echo Error +Error ++ exit 2 +XFAIL: Test bad programs (semantics): test_lus2lic_no_node should_fail/semantics/test_const.lus +spawn ../utils/test_lus2lic_no_node should_fail/semantics/import2.lus ++ ./lus2lic should_fail/semantics/import2.lus -n import2 --gen-autotest -np *** Error in file "/home/jahier/lus2lic/test/should_fail/semantics/import2.lus", line 2, col 0 to 3, token 'node': *** syntax error -XFAIL: Test bad programs (semantics): lus2lic {-o /tmp/import2.lic should_fail/semantics/import2.lus} -spawn ./lus2lic -o /tmp/bad_call01.lic should_fail/semantics/bad_call01.lus ++ echo Error +Error ++ exit 2 +XFAIL: Test bad programs (semantics): test_lus2lic_no_node should_fail/semantics/import2.lus +spawn ../utils/test_lus2lic_no_node should_fail/semantics/bad_call01.lus ++ ./lus2lic should_fail/semantics/bad_call01.lus -n bad_call01 --gen-autotest -np *** Error in file "/home/jahier/lus2lic/test/should_fail/semantics/bad_call01.lus", line 3, col 12 to 15, token 'toto': *** Recursion loop detected in node bad_call01::toto *** bad_call01::toto depends on itself node ref in file "/home/jahier/lus2lic/test/should_fail/semantics/bad_call01.lus", line 3, col 12 to 15, token 'toto' -XFAIL: Test bad programs (semantics): lus2lic {-o /tmp/bad_call01.lic should_fail/semantics/bad_call01.lus} -spawn ./lus2lic -o /tmp/x.lic should_fail/semantics/x.lus -*** Error in file "/home/jahier/lus2lic/test/should_fail/semantics/x.lus", line 8, col 6 to 6, token 't': -*** Recursion loop detected: -*** const ref in file "/home/jahier/lus2lic/test/should_fail/semantics/x.lus", line 8, col 10 to 10, token 'n' - > const ref in file "/home/jahier/lus2lic/test/should_fail/semantics/x.lus", line 2, col 10 to 10, token 'm' - > const ref in file "/home/jahier/lus2lic/test/should_fail/semantics/x.lus", line 4, col 10 to 10, token 'x' - > const ref in file "/home/jahier/lus2lic/test/should_fail/semantics/x.lus", line 6, col 10 to 10, token 't' - -XFAIL: Test bad programs (semantics): lus2lic {-o /tmp/x.lic should_fail/semantics/x.lus} -spawn ./lus2lic -o /tmp/t.lic should_fail/semantics/t.lus ++ echo Error +Error ++ exit 2 +XFAIL: Test bad programs (semantics): test_lus2lic_no_node should_fail/semantics/bad_call01.lus +spawn ../utils/test_lus2lic_no_node should_fail/semantics/x.lus ++ ./lus2lic should_fail/semantics/x.lus -n x --gen-autotest -np +_x_env.lut generated. +_x_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_fail/semantics/x.lus ++ ./lus2lic should_fail/semantics/x.lus -n x -ec -o x.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:x.ec:x -rp env:lutin:_x_env.lut -rp oracle:v6:_x_oracle.lus:x_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +quit + + +The coverage rate is -nan% +The coverage file lurette.cov has been updated/generated +break signal catched + +lurettetop: bye! ++ echo lurettetop ok +lurettetop ok ++ exit 0 +XPASS: Test bad programs (semantics): test_lus2lic_no_node should_fail/semantics/x.lus +spawn ../utils/test_lus2lic_no_node should_fail/semantics/aux1.lus ++ ./lus2lic should_fail/semantics/aux1.lus -n aux1 --gen-autotest -np +_aux1_env.lut generated. +_aux1_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_fail/semantics/aux1.lus ++ ./lus2lic should_fail/semantics/aux1.lus -n aux1 -ec -o aux1.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:aux1.ec:aux1 -rp env:lutin:_aux1_env.lut -rp oracle:v6:_aux1_oracle.lus:aux1_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +#ERROR: Output takes on nil +RifIO.Bye +Lurette launched a process that failed (exit 2). + +break signal catched + +lurettetop: bye! ++ echo error +error ++ exit 2 +XPASS: Test bad programs (semantics): test_lus2lic_no_node should_fail/semantics/aux1.lus +spawn ../utils/test_lus2lic_no_node should_fail/semantics/t.lus ++ ./lus2lic should_fail/semantics/t.lus -n t --gen-autotest -np *** Error in file "/home/jahier/lus2lic/test/should_fail/semantics/t.lus", line 31, col 6 to 6, token 'A': *** bad constant declaration, ident already linked at line:2, col:6 to 6 -XFAIL: Test bad programs (semantics): lus2lic {-o /tmp/t.lic should_fail/semantics/t.lus} -spawn ./lus2lic -o /tmp/parametric_node4.lic should_fail/semantics/parametric_node4.lus ++ echo Error +Error ++ exit 2 +XFAIL: Test bad programs (semantics): test_lus2lic_no_node should_fail/semantics/t.lus +spawn ../utils/test_lus2lic_no_node should_fail/semantics/parametric_node4.lus ++ ./lus2lic should_fail/semantics/parametric_node4.lus -n parametric_node4 --gen-autotest -np *** Error in file "/home/jahier/lus2lic/test/should_fail/semantics/parametric_node4.lus", line 4, col 16 to 16, token 'n': *** can't eval type: bad array size, int expected but get real -XFAIL: Test bad programs (semantics): lus2lic {-o /tmp/parametric_node4.lic should_fail/semantics/parametric_node4.lus} -spawn ./lus2lic -o /tmp/const2.lic should_fail/semantics/const2.lus ++ echo Error +Error ++ exit 2 +XFAIL: Test bad programs (semantics): test_lus2lic_no_node should_fail/semantics/parametric_node4.lus +spawn ../utils/test_lus2lic_no_node should_fail/semantics/const2.lus ++ ./lus2lic should_fail/semantics/const2.lus -n const2 --gen-autotest -np *** Error in file "/home/jahier/lus2lic/test/should_fail/semantics/const2.lus", line 4, col 17 to 21, token 'false': *** syntax error -XFAIL: Test bad programs (semantics): lus2lic {-o /tmp/const2.lic should_fail/semantics/const2.lus} -spawn ./lus2lic -o /tmp/sargs.lic should_fail/semantics/sargs.lus ++ echo Error +Error ++ exit 2 +XFAIL: Test bad programs (semantics): test_lus2lic_no_node should_fail/semantics/const2.lus +spawn ../utils/test_lus2lic_no_node should_fail/semantics/sargs.lus ++ ./lus2lic should_fail/semantics/sargs.lus -n sargs --gen-autotest -np *** Error in file "/home/jahier/lus2lic/test/should_fail/semantics/sargs.lus", line 7, col 9 to 9, token '+': *** type error: *** type 'real * int' was provided whereas @@ -1707,8 +7514,12 @@ spawn ./lus2lic -o /tmp/sargs.lic should_fail/semantics/sargs.lus *** *** real and int are not unifiable -XFAIL: Test bad programs (semantics): lus2lic {-o /tmp/sargs.lic should_fail/semantics/sargs.lus} -spawn ./lus2lic -o /tmp/patrick.lic should_fail/semantics/patrick.lus ++ echo Error +Error ++ exit 2 +XFAIL: Test bad programs (semantics): test_lus2lic_no_node should_fail/semantics/sargs.lus +spawn ../utils/test_lus2lic_no_node should_fail/semantics/patrick.lus ++ ./lus2lic should_fail/semantics/patrick.lus -n patrick --gen-autotest -np *** Error in file "/home/jahier/lus2lic/test/should_fail/semantics/patrick.lus", line 2, col 5 to 11, token 'patrick': *** *** "x" (local x:int on base(x,0)) is not defined. @@ -1716,18 +7527,188 @@ spawn ./lus2lic -o /tmp/patrick.lic should_fail/semantics/patrick.lus - "s" (output s:int on base(s,0)) -XFAIL: Test bad programs (semantics): lus2lic {-o /tmp/patrick.lic should_fail/semantics/patrick.lus} -spawn ./lus2lic -o /tmp/const.lic should_fail/semantics/const.lus -*** Error in file "/home/jahier/lus2lic/test/should_fail/semantics/const.lus", line 19, col 41 to 42, token 'c4': -*** bad field declaration, ident already linked at line:19, col:9 to 10 - -XFAIL: Test bad programs (semantics): lus2lic {-o /tmp/const.lic should_fail/semantics/const.lus} -spawn ./lus2lic -o /tmp/m.lic should_fail/semantics/m.lus ++ echo Error +Error ++ exit 2 +XFAIL: Test bad programs (semantics): test_lus2lic_no_node should_fail/semantics/patrick.lus +spawn ../utils/test_lus2lic_no_node should_fail/semantics/m.lus ++ ./lus2lic should_fail/semantics/m.lus -n m --gen-autotest -np *** Error in file "/home/jahier/lus2lic/test/should_fail/semantics/m.lus", line 3, col 22 to 22, token ',': *** syntax error -XFAIL: Test bad programs (semantics): lus2lic {-o /tmp/m.lic should_fail/semantics/m.lus} -testcase ./lus2lic.tests/non-reg.exp completed in 60 seconds ++ echo Error +Error ++ exit 2 +XFAIL: Test bad programs (semantics): test_lus2lic_no_node should_fail/semantics/m.lus +spawn ../utils/test_lus2lic_no_node should_fail/exec/X3.lus ++ ./lus2lic should_fail/exec/X3.lus -n X3 --gen-autotest -np +_X3_env.lut generated. +_X3_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_fail/exec/X3.lus ++ ./lus2lic should_fail/exec/X3.lus -n X3 -ec -o X3.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:X3.ec:X3 -rp env:lutin:_X3_env.lut -rp oracle:v6:_X3_oracle.lus:X3_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +#ERROR: Output takes on nil +RifIO.Bye +Lurette launched a process that failed (exit 2). + +break signal catched + +lurettetop: bye! ++ echo error +error ++ exit 2 +XPASS: Test bad programs (exec): test_lus2lic_no_node should_fail/exec/X3.lus +spawn ../utils/test_lus2lic_no_node should_fail/assert/assertion.lus ++ ./lus2lic should_fail/assert/assertion.lus -n assertion --gen-autotest -np +_assertion_env.lut generated. +_assertion_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_fail/assert/assertion.lus ++ ./lus2lic should_fail/assert/assertion.lus -n assertion -ec -o assertion.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:assertion.ec:assertion -rp env:lutin:_assertion_env.lut -rp oracle:v6:_assertion_oracle.lus:assertion_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +#ERROR: Assertion takes on false +RifIO.Bye +Lurette launched a process that failed (exit 2). + +break signal catched + +lurettetop: bye! ++ echo error +error ++ exit 2 +XPASS: Test bad programs (assert): test_lus2lic_no_node should_fail/assert/assertion.lus +spawn ../utils/test_lus2lic_no_node should_fail/assert/alarme.lus ++ ./lus2lic should_fail/assert/alarme.lus -n alarme --gen-autotest -np +_alarme_env.lut generated. +_alarme_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_fail/assert/alarme.lus ++ ./lus2lic should_fail/assert/alarme.lus -n alarme -ec -o alarme.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:alarme.ec:alarme -rp env:lutin:_alarme_env.lut -rp oracle:v6:_alarme_oracle.lus:alarme_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +#ERROR: Assertion takes on false +RifIO.Bye +Lurette launched a process that failed (exit 2). + +break signal catched + +lurettetop: bye! ++ echo error +error ++ exit 2 +XPASS: Test bad programs (assert): test_lus2lic_no_node should_fail/assert/alarme.lus +spawn ../utils/test_lus2lic_no_node should_fail/assert/lecteur.lus ++ ./lus2lic should_fail/assert/lecteur.lus -n lecteur --gen-autotest -np +_lecteur_env.lut generated. +_lecteur_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_fail/assert/lecteur.lus ++ ./lus2lic should_fail/assert/lecteur.lus -n lecteur -ec -o lecteur.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:lecteur.ec:lecteur -rp env:lutin:_lecteur_env.lut -rp oracle:v6:_lecteur_oracle.lus:lecteur_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +#ERROR: Assertion takes on false +RifIO.Bye +Lurette launched a process that failed (exit 2). + +break signal catched + +lurettetop: bye! ++ echo error +error ++ exit 2 +XPASS: Test bad programs (assert): test_lus2lic_no_node should_fail/assert/lecteur.lus +spawn ../utils/test_lus2lic_no_node should_fail/assert/drapfab.lus ++ ./lus2lic should_fail/assert/drapfab.lus -n drapfab --gen-autotest -np +_drapfab_env.lut generated. +_drapfab_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_fail/assert/drapfab.lus ++ ./lus2lic should_fail/assert/drapfab.lus -n drapfab -ec -o drapfab.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:drapfab.ec:drapfab -rp env:lutin:_drapfab_env.lut -rp oracle:v6:_drapfab_oracle.lus:drapfab_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +#ERROR: Assertion takes on false +RifIO.Bye +Lurette launched a process that failed (exit 2). + +break signal catched + +lurettetop: bye! ++ echo error +error ++ exit 2 +XPASS: Test bad programs (assert): test_lus2lic_no_node should_fail/assert/drapfab.lus +spawn ../utils/test_lus2lic_no_node should_fail/assert/s.lus ++ ./lus2lic should_fail/assert/s.lus -n s --gen-autotest -np +_s_env.lut generated. +_s_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_fail/assert/s.lus ++ ./lus2lic should_fail/assert/s.lus -n s -ec -o s.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:s.ec:s -rp env:lutin:_s_env.lut -rp oracle:v6:_s_oracle.lus:s_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +#ERROR: Assertion takes on false +RifIO.Bye +Lurette launched a process that failed (exit 2). + +break signal catched + +lurettetop: bye! ++ echo error +error ++ exit 2 +XPASS: Test bad programs (assert): test_lus2lic_no_node should_fail/assert/s.lus +spawn ../utils/test_lus2lic_no_node should_fail/assert/eq1.lus ++ ./lus2lic should_fail/assert/eq1.lus -n eq1 --gen-autotest -np +_eq1_env.lut generated. +_eq1_oracle.lus generated. ++ echo lus2lic --gen-autotest done +lus2lic --gen-autotest done ++ cat should_fail/assert/eq1.lus ++ ./lus2lic should_fail/assert/eq1.lus -n eq1 -ec -o eq1.ec ++ echo lus2lic -ec done +lus2lic -ec done ++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++ ./lurettetop -p 6 -seed 42 -rp sut:ec:eq1.ec:eq1 -rp env:lutin:_eq1_env.lut -rp oracle:v6:_eq1_oracle.lus:eq1_oracle -go -l 10 -ns2c --stop-on-oracle-error +RP Variables are compatible. +#ERROR: Assertion takes on false +RifIO.Bye +Lurette launched a process that failed (exit 2). + +break signal catched + +lurettetop: bye! ++ echo error +error ++ exit 2 +XPASS: Test bad programs (assert): test_lus2lic_no_node should_fail/assert/eq1.lus +testcase ./lus2lic.tests/non-reg.exp completed in 129 seconds Running ./lus2lic.tests/progression.exp ... spawn ./lus2lic -o /tmp/when_not.out should_work/broken/when_not.lus PASS: ./lus2lic { -o /tmp/when_not.out should_work/broken/when_not.lus} @@ -1764,12 +7745,12 @@ spawn ./lus2lic -o /tmp/activation1.lic should_fail/semantics/broken/activation1 XPASS: Test bad programs (semantics): lus2lic {-o /tmp/activation1.lic should_fail/semantics/broken/activation1.lus} spawn ./lus2lic -o /tmp/bug.lic should_fail/semantics/broken/bug.lus XPASS: Test bad programs (semantics): lus2lic {-o /tmp/bug.lic should_fail/semantics/broken/bug.lus} -testcase ./lus2lic.tests/progression.exp completed in 1 seconds +testcase ./lus2lic.tests/progression.exp completed in 0 seconds === lus2lic Summary === -# of expected passes 744 -# of unexpected failures 2 -# of unexpected successes 11 +# of expected passes 885 +# of unexpected failures 76 +# of unexpected successes 21 # of expected failures 37 -runtest completed at Wed Apr 3 15:42:47 2013 +runtest completed at Wed May 21 16:19:46 2014 diff --git a/test/lus2lic.sum b/test/lus2lic.sum index 883b36f33353e27614ac0cdf00f5b5a342e6e1ef..bd1478edcbd36ebb50bdebb392db4b05ac69f71e 100644 --- a/test/lus2lic.sum +++ b/test/lus2lic.sum @@ -1,4 +1,4 @@ -Test Run By jahier on Thu Jun 6 10:33:07 2013 +Test Run By jahier on Wed May 21 16:17:37 2014 Native configuration is i686-pc-linux-gnu === lus2lic tests === @@ -45,6 +45,9 @@ PASS: ./lus2lic {-o /tmp/mouse2.lic should_work/mouse2.lus} PASS: ./lus2lic {-ec -o /tmp/mouse2.ec should_work/mouse2.lus} PASS: ./myec2c {-o /tmp/mouse2.c /tmp/mouse2.ec} PASS: ../utils/test_lus2lic_no_node should_work/mouse2.lus +PASS: ./lus2lic {-o /tmp/modes3x2-v3.lic should_work/modes3x2-v3.lus} +PASS: ./lus2lic {-ec -o /tmp/modes3x2-v3.ec should_work/modes3x2-v3.lus} +FAIL: Try ec2c on the result: ./myec2c {-o /tmp/modes3x2-v3.c /tmp/modes3x2-v3.ec} PASS: ./lus2lic {-o /tmp/dep.lic should_work/dep.lus} PASS: ./lus2lic {-ec -o /tmp/dep.ec should_work/dep.lus} PASS: ./myec2c {-o /tmp/dep.c /tmp/dep.ec} @@ -235,6 +238,10 @@ PASS: ./lus2lic {-o /tmp/double_delay.lic should_work/double_delay.lus} PASS: ./lus2lic {-ec -o /tmp/double_delay.ec should_work/double_delay.lus} PASS: ./myec2c {-o /tmp/double_delay.c /tmp/double_delay.ec} PASS: ../utils/test_lus2lic_no_node should_work/double_delay.lus +PASS: ./lus2lic {-o /tmp/modes3x2-v2.lic should_work/modes3x2-v2.lus} +PASS: ./lus2lic {-ec -o /tmp/modes3x2-v2.ec should_work/modes3x2-v2.lus} +PASS: ./myec2c {-o /tmp/modes3x2-v2.c /tmp/modes3x2-v2.ec} +FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/modes3x2-v2.lus PASS: ./lus2lic {-o /tmp/struct_with.lic should_work/struct_with.lus} PASS: ./lus2lic {-ec -o /tmp/struct_with.ec should_work/struct_with.lus} PASS: ./myec2c {-o /tmp/struct_with.c /tmp/struct_with.ec} @@ -262,7 +269,7 @@ FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node shou PASS: ./lus2lic {-o /tmp/onlyroll2.lic should_work/onlyroll2.lus} PASS: ./lus2lic {-ec -o /tmp/onlyroll2.ec should_work/onlyroll2.lus} PASS: ./myec2c {-o /tmp/onlyroll2.c /tmp/onlyroll2.ec} -FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/onlyroll2.lus +PASS: ../utils/test_lus2lic_no_node should_work/onlyroll2.lus PASS: ./lus2lic {-o /tmp/X6.lic should_work/X6.lus} PASS: ./lus2lic {-ec -o /tmp/X6.ec should_work/X6.lus} PASS: ./myec2c {-o /tmp/X6.c /tmp/X6.ec} @@ -397,7 +404,7 @@ PASS: ../utils/test_lus2lic_no_node should_work/bad_call03.lus PASS: ./lus2lic {-o /tmp/onlyroll.lic should_work/onlyroll.lus} PASS: ./lus2lic {-ec -o /tmp/onlyroll.ec should_work/onlyroll.lus} PASS: ./myec2c {-o /tmp/onlyroll.c /tmp/onlyroll.ec} -FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/onlyroll.lus +PASS: ../utils/test_lus2lic_no_node should_work/onlyroll.lus PASS: ./lus2lic {-o /tmp/produitBool.lic should_work/produitBool.lus} PASS: ./lus2lic {-ec -o /tmp/produitBool.ec should_work/produitBool.lus} PASS: ./myec2c {-o /tmp/produitBool.c /tmp/produitBool.ec} @@ -1024,9 +1031,9 @@ XPASS: Test bad programs (semantics): lus2lic {-o /tmp/bug.lic should_fail/seman === lus2lic Summary === -# of expected passes 878 +# of expected passes 885 # of unexpected failures 76 # of unexpected successes 21 # of expected failures 37 -testcase ./lus2lic.tests/non-reg.exp completed in 340 seconds +testcase ./lus2lic.tests/non-reg.exp completed in 129 seconds testcase ./lus2lic.tests/progression.exp completed in 0 seconds diff --git a/test/lus2lic.tests/non-reg.exp b/test/lus2lic.tests/non-reg.exp index 726f47c5d36e06ce2c6f6c368297d76953717733..c6712127ba4aee90a732a52bb30ed42ede1604c5 100644 --- a/test/lus2lic.tests/non-reg.exp +++ b/test/lus2lic.tests/non-reg.exp @@ -14,14 +14,25 @@ foreach f $ok_files { wait -i $id1 set id2 [should_work "Generate ec code " "$lus2lic" "-ec -o $bf.ec $f"] wait -i $id2 + if { [emptyfile "$bf.ec"] } { set id3 [should_work "Try ec2c on the result" "$ec2c" "-o $bf.c $bf.ec"] wait -i $id3 + catch { exp_close -i $id3 } + catch { exp_wait -i $id3 } output } if { [emptyfile "$bf.c"] } { set id4 [should_work "Try to compare lus2lic -exec and ecexe" "$test_lus2lic_no_node" "$f"] + catch { exp_close -i $id4 } + catch { exp_wait -i $id4 } output } -} + + catch { exp_close -i $id1 } + catch { exp_wait -i $id1 } output + catch { exp_close -i $id2 } + catch { exp_wait -i $id2 } output + + } # Programs that should fail @@ -34,6 +45,8 @@ proc iter_should_fail { fail_kind } { set bf /tmp/[file tail $bf] set id [should_fail "Test bad programs" "$fail_kind" "$test_lus2lic_no_node" "$f"] wait -i $id + catch { exp_close -i $id } + catch { exp_wait -i $id } output } } # set id [should_fail "Test bad programs" "$fail_kind" "$lus2lic" "-o $bf.lic $f"] diff --git a/test/lus2lic.tests/progression.exp b/test/lus2lic.tests/progression.exp index 473153d5c9c3ad05be226efb992647c929881267..c2e8336fd84af64fab3e3ff96cdf92424b9671b2 100644 --- a/test/lus2lic.tests/progression.exp +++ b/test/lus2lic.tests/progression.exp @@ -1,6 +1,6 @@ # Timeout reduced to 3 seconds -set timeout 3 +set timeout 20 #set command_line "~/lus2lic/objlinux/lus2lic" diff --git a/test/lus2lic.time b/test/lus2lic.time index 3c4b8f9515b35b534023d985dba61f518c6a3e49..b771258b27d419d55d4c949273a79842020ac0d2 100644 --- a/test/lus2lic.time +++ b/test/lus2lic.time @@ -1,2 +1,2 @@ -testcase ./lus2lic.tests/non-reg.exp completed in 340 seconds +testcase ./lus2lic.tests/non-reg.exp completed in 129 seconds testcase ./lus2lic.tests/progression.exp completed in 0 seconds diff --git a/test/should_work/cminus.lus b/test/should_work/cminus.lus index c183e87b3330f477ff574c477bf377a421711809..5d5be5b96c5a900aa104d3699e40461320215749 100644 --- a/test/should_work/cminus.lus +++ b/test/should_work/cminus.lus @@ -16,6 +16,7 @@ var s1,s2:bool; let s1= TWO_STATES(e1,e2,init); s2= TWO_BUTTONS(e1,e2,init); - assert not(e1 and e2)->true; +-- sometimes broken by the current (random-based non-reg test scheme) +-- assert not(e1 and e2)->true; ok =(s1=s2) ; tel diff --git a/test/should_work/modes3x2-v2.lus b/test/should_work/modes3x2-v2.lus new file mode 100644 index 0000000000000000000000000000000000000000..eb8bca0c0ce0ea38164da7734f0e624dddf4e38f --- /dev/null +++ b/test/should_work/modes3x2-v2.lus @@ -0,0 +1,83 @@ +(* version modifiée pour enlever le cycle combinatoire du au pre +calculé dans le switch *) + +type data = int; + +-- version pour otawa +-- function A0(x:data) returns (y:data); +-- function A1(x:data) returns (y:data); +-- function A2(x:data) returns (y:data); +-- function B0(x:data) returns (y:data); +-- function B1(x:data) returns (y:data); + + +-- version pour simu + +node A0(x:data) returns (y:data); let y = 3; tel +node A1(x:data) returns (y:data); let y = 23; tel +node A2(x:data) returns (y:data); let y = 43; tel +node B0(x:data) returns (y:data); let y = 15; tel +node B1(x:data) returns (y:data); let y = 5; tel + + + +node switch(init, on, off: bool) returns (s: bool); +var + ps:bool; +let + ps = init -> pre s; + s = if ps then not off else on; +tel + +node copy(x:bool) returns (y: bool); +let + y = x; +tel + +node A(x:data; ca1, ca2: bool) returns (y:data); +var + idle, low, high: bool; + pidle, plow, phigh: bool; +let + idle = switch(true, ca1, ca1); + pidle = true -> pre idle; + (* E cycle entre low et high ! *) + low = switch(false, pidle and ca1 or phigh and ca2, ca1 or ca2); + high = switch(false, plow and not ca1 and ca2, ca1 or ca2); + plow = false -> pre low; + phigh = false -> pre high; + y = if idle then current (A0 (x when idle)) + else if low then current (A1 (x when low)) + else if high then current (A2 (x when high)) + else (0 -> pre y) ; +tel + +node B(x:data; _nom, _sby: bool) returns (z:data); +var + nom, sby: bool; +let + nom = copy(_nom); + sby = copy(_sby); + z = if nom then current (B0(x when nom)) + else if sby then current (B1(x when sby)) + else (0 -> pre z); +tel + +node modes3x2(x:data; on_off, toggle: bool) returns (res: data); +var + y, z : data; + sby : bool; + nom : bool; +let + assert #(on_off, toggle); + + y = A(x, on_off, toggle); + z = B(y, nom, sby); + + (* coordination commandes *) + --pcritic, critic = switch(false, on_off, on_off); + --sleep = pcritic and (on_off or toggle); + sby = (on_off = (true -> pre nom)); + nom = (on_off = (false -> pre sby)); + res = y + z; +tel diff --git a/test/should_work/modes3x2-v3.lus b/test/should_work/modes3x2-v3.lus new file mode 100644 index 0000000000000000000000000000000000000000..83435e5d3861e374c9897c9d4f94cc169deb26bd --- /dev/null +++ b/test/should_work/modes3x2-v3.lus @@ -0,0 +1,69 @@ +(* version utilisant les horloges enumérées à la V6 *) + +type data = int; + +-- version pour otawa +-- function A0(x:data) returns (y:data); +-- function A1(x:data) returns (y:data); +-- function A2(x:data) returns (y:data); +-- function B0(x:data) returns (y:data); +-- function B1(x:data) returns (y:data); + + +-- version pour simu + +node A0(x:data) returns (y:data); let y = 3; tel +node A1(x:data) returns (y:data); let y = 23; tel +node A2(x:data) returns (y:data); let y = 43; tel +node B0(x:data) returns (y:data); let y = 15; tel +node B1(x:data) returns (y:data); let y = 5; tel + +node copy(x:bool) returns (y: bool); +let + y = x; +tel +type state = enum { idle, low, high }; + +node A(x:data; ca1, ca2: bool) returns (y:data); +var + s, ps: state; +let + s = if ps = idle then (if ca1 then low else idle) + else if ps = low then (if ca1 then idle else if ca2 then high else low) + else (* ps = high *) (if ca1 then idle else if ca2 then low else high); + ps = idle -> pre s; + y = merge s + ( idle -> A0(x when idle(s)) ) + ( low -> A1(x when low(s)) ) + ( high -> A2(x when high(s)) ) ; +tel + +node B(x:data; _nom, _sby: bool) returns (z:data); +var + nom, sby: bool; +let + nom = copy(_nom); + sby = copy(_sby); + z = if nom then current (B0(x when nom)) + else if sby then current (B1(x when sby)) + else (0 -> pre z); +tel + +node modes3x2(x:data; on_off, toggle: bool) returns (res: data); +var + y, z : data; + sby : bool; + nom : bool; +let + assert #(on_off, toggle); + + y = A(x, on_off, toggle); + z = B(y, nom, sby); + + (* coordination commandes *) + --pcritic, critic = switch(false, on_off, on_off); + --sleep = pcritic and (on_off or toggle); + sby = (on_off = (true -> pre nom)); + nom = (on_off = (false -> pre sby)); + res = y + z; +tel diff --git a/test/should_work/test_merge.lus b/test/should_work/test_merge.lus index 9c7d0a167cfd2f4da5ea36117684605cd985c048..6aefb4e82ad9639353b22dd2206faf4860fa9cd2 100644 --- a/test/should_work/test_merge.lus +++ b/test/should_work/test_merge.lus @@ -11,12 +11,18 @@ let ( Tranche -> i3); tel -node merge_bool_alt(clk : bool ; i1 : int when clk ; i2 : int when not clk) returns (y: int); +node merge_bool_alt(clk : bool ; + i1 : int when clk ; + i2 : int when not clk) +returns (y: int); let y = merge clk (true -> i1) (false-> i2); tel -node merge_bool_ter(clk : bool ; i1 : int when clk ; i2 : int when not clk) returns (y: int); +node merge_bool_ter(clk : bool ; + i1 : int when clk ; + i2 : int when not clk) +returns (y: int); let y = merge clk (false-> i2) (true -> i1) ; tel diff --git a/test/site.exp b/test/site.exp index 60015ba46510bf47983d1e7faa14b2c90a2d6468..1fa5caee7b2bd421eb17a1df72523f1e0d3e64cf 100644 --- a/test/site.exp +++ b/test/site.exp @@ -2,6 +2,9 @@ set lus2lic "./lus2lic" set ec2c "./ec2c" set ec2c "./myec2c" set test_lus2lic_no_node "../utils/test_lus2lic_no_node" + +set timeout 10 + proc should_work { test_name command_line args } { global verbose @@ -52,6 +55,9 @@ proc should_work { test_name command_line args } { set failed 1 exp_continue } + "rdbg -lurette: ok" { + pass "$cl $args" + } "lurettetop ok" { pass "$cl $args" } diff --git a/utils/patch_ecexe b/utils/patch_ecexe new file mode 100755 index 0000000000000000000000000000000000000000..f62ae7e4547852d1180d2611eef2001e91477e4d --- /dev/null +++ b/utils/patch_ecexe @@ -0,0 +1,14 @@ +#!/bin/sh + +# ecexe -rif does not declare its outputs, and rdbg --sut-stdio needs it! +# fortunately, lus2lic -exec can do the job! + +# Its hacky, but simple enough... + + +ec=$1 +node=$2 + + +./lus2lic -interface $ec -n $node +ecexe -rif -r $ec diff --git a/utils/test_lus2lic_no_node b/utils/test_lus2lic_no_node index b946f7750b146defbad980d15035b643e694b221..6ed9e482d771f3b5e53fa85cc1163408d8507df6 100755 --- a/utils/test_lus2lic_no_node +++ b/utils/test_lus2lic_no_node @@ -1,5 +1,8 @@ #!/bin/sh +# compares with lurette the results of: +# lus2lic -ec and ecexe +# lus2lic -exec lustre_file=$1 node=`basename $lustre_file .lus` @@ -10,6 +13,7 @@ ec="$node".ec lv4_node="$node__$node" env=_"$node"_env.lut + set -x verbose #echo on if @@ -29,14 +33,16 @@ cat $lustre_file >> $_oracle; if ./lus2lic $lustre_file -n $node -ec -o $ec; # ./lus2lic $lustre_file -n $node -en -lv4 -eei --no-prefix -o $lv4; +# lus2ec $lv4 $node then - echo "lus2lic -lv4 done" + echo "lus2lic -ec done" else echo "Error" exit 2 fi + export PATH=/usr/local/tools/lustre/bin/:$PATH # if # ./lus2lic $_oracle -n $oracle -ec -o $oracle.ec diff --git a/utils/test_lus2lic_no_node_rdbg b/utils/test_lus2lic_no_node_rdbg new file mode 100755 index 0000000000000000000000000000000000000000..99c5e2f233869278ba7ff8703d550f82f434796f --- /dev/null +++ b/utils/test_lus2lic_no_node_rdbg @@ -0,0 +1,110 @@ +#!/bin/sh + + +ocamlopt=/usr/local/soft/ocaml/4.01.0/bin/ocamlopt.opt +lustre_file=$1 +node=`basename $lustre_file .lus` +_oracle=_"$node"_oracle.lus +oracle="$node"_oracle +lv4="$node"_lv4.lus +ec="$node".ec +lv4_node="$node__$node" +env=_"$node"_env.lut +export RDBG_PATH="$HOME/rdbg" +set -x verbose #echo on + +if +./lus2lic $lustre_file -n $node --gen-autotest -np; +then + echo "lus2lic --gen-autotest done" +else + echo "Error" + exit 2 +fi + +#cat $lustre_file >> $_oracle + +cat $lustre_file >> $_oracle; + + +if + ./lus2lic $lustre_file -n $node -ec -o $ec; +# ./lus2lic $lustre_file -n $node -en -lv4 -eei --no-prefix -o $lv4; +then + echo "lus2lic -lv4 done" +else + echo "Error" + exit 2 +fi + + +export PATH=/usr/local/tools/lustre/bin/:$PATH +# if +# ./lus2lic $_oracle -n $oracle -ec -o $oracle.ec +# # ./lus2lic lv4$_oracle -n $oracle -ec -o $oracle.ec +# # lus2ec $_oracle $oracle -o $oracle.ec; +# then +# echo "ec generation done" +# else +# echo "Error" +# exit 2 +# fi + + + + +export CMXA="polka.cmxa bdd.cmxa lut4ocaml.cmxa" +export CLIB="-cclib -lgmp -cclib -lpolkag_caml -cclib -lpolkal_caml -cclib -lpolkai_caml -cclib -lcamlidl -cclib -lpolkag -cclib -lpolkal -cclib -lpolkai -cclib -lbdd_stubs -cclib -lEzdl_c_stubs" + + +# ./lurettetop -p 6 -seed 42 \ +# -rp "sut:ec:$ec:$lv4_node" \ +# -rp "env:lutin:$env" \ +# -rp "oracle:v6:$_oracle:$oracle" \ +# -l 10; +#--stop-on-oracle-error; + +if + echo "Generating oracle.cmxs"; + ./lus2lic -ocaml -o oracle.ml $_oracle -n $oracle && + $ocamlopt -shared -o oracle.cmxs -I +lustre-v6 -I +rdbg-plugin lus4ocaml.cmxa oracle.ml && + + echo "Generating sut.cmxs" && + ./lus2lic -ocaml -o sut.ml $ec -n $lv4_node && + $ocamlopt -shared -o sut.cmxs -I +lustre-v6 -I +rdbg-plugin lus4ocaml.cmxa sut.ml && + + echo "Generating env.cmxs" && + ./lutin -seed 42 -ocaml -o env.ml $env && + $ocamlopt -shared -o env.cmxs -I +lutin -I +rdbg-plugin $CLIB $CMXA env.ml && + + ./lurettetop -p 6 -seed 42 \ + -rp "sut:ec:$ec:$lv4_node" \ + -rp "env:lutin:$env" \ + -rp "oracle:v6:$_oracle:$oracle" \ + -go -l 10 -ns2c --stop-on-oracle-error; + + echo " $RDBG_PATH/rdbgbatch.native -lurette --seed 42 -l 100 -p 6 --stop-on-oracle-error \ + --sut sut.cmxs \ + --env env.cmxs \ + --oracle oracle.cmxs "; + + echo " $RDBG_PATH/rdbgbatch.native -lurette --seed 42 -l 100 -p 6 --stop-on-oracle-error \ + --sut-stdio \"./patch_ecexe $ec $lv4_node\" \ + --env-stdio \"./lutin -boot -rif $env\" \ + --oracle-stdio \"./lus2lic -exec -rif $_oracle -n $oracle\" "; +# --sut sut.cmxs \ +# --env-stdio "./lutin -boot -rif $env" \ +# --oracle-stdio "./lus2lic -exec -rif $_oracle -n $oracle" ; + + +#$RDBG_PATH/rdbgbatch.native -lurette --seed 42 -p 6 -l 10 --stop-on-oracle-error \ +# --sut-stdio "./patch_ecexe $ec $lv4_node" \ +# --env-stdio "./lutin -boot -rif $env" \ +# --oracle-stdio "./lus2lic -exec -rif $_oracle -n $oracle" ; +then +echo "rdbg -lurette: ok" +else + echo "error" + exit 2 +fi +exit 0