Closed ivanperez-keera closed 6 months ago
Change Manager: The date in the CHANGELOG should be updated to today.
Implementor: Fix implemented, review requested.
Change Manager: Verified that:
Solution is implemented:
FROM ubuntu:trusty
RUN apt-get update
RUN apt-get install --yes software-properties-common RUN add-apt-repository ppa:hvr/ghc RUN apt-get update
RUN apt-get install --yes ghc-8.6.5 cabal-install-2.4 RUN apt-get install --yes libz-dev
ENV PATH=/opt/ghc/8.6.5/bin:/opt/cabal/2.4/bin:$PWD/.cabal-sandbox/bin:$PATH
RUN cabal update RUN cabal v1-sandbox init RUN cabal v1-install alex happy RUN apt-get install --yes git
CMD git clone $REPO && \ cd $NAME && \ git checkout $COMMIT && \ cd .. && \ cabal v1-install $NAME/$PAT/ --enable-tests && \ cabal v1-install $NAME/$PAT/ --enable-tests --run-tests -j1
Command:
```sh
$ docker run -e "REPO=https://github.com/nasa/ogma" -e "NAME=ogma" -e PAT="ogma-" -e "COMMIT=8082ff83059dec71ac1073dcc5ef3c7ab77ee198" -it ogma-test
--- Dockerfile-verify-130
FROM ubuntu:focal
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update SHELL ["/bin/bash", "-c"]
RUN apt-get install --yes software-properties-common RUN add-apt-repository universe RUN apt-get update RUN apt-get install curl -y RUN curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg RUN echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(source /etc/os-release && echo $UBUNTU_CODENAME) main" | tee /etc/apt/sources.list.d/ros2.list RUN apt-get update RUN apt-get upgrade -y RUN apt-get install -y ros-foxy-ros-base python3-argcomplete RUN apt-get install -y ros-dev-tools
RUN add-apt-repository ppa:hvr/ghc RUN apt-get update
RUN apt-get install --yes ghc-8.6.5 cabal-install-2.4 RUN apt-get install --yes libz-dev
ENV PATH=/opt/ghc/8.6.5/bin:/opt/cabal/2.4/bin:$PWD/.cabal-sandbox/bin:$PATH
RUN cabal update RUN cabal v1-sandbox init RUN cabal v1-install alex happy RUN cabal v1-install copilot-3.19 RUN apt-get install --yes git
ADD reqs.json /tmp/reqs.json ADD variable-db /tmp/variable-db
CMD git clone $REPO && \ cd $NAME && \ git checkout $COMMIT && \ cd .. && \ cabal v1-install --force-reinstall $NAME/$PAT*/ && \ ogma ros --fret-file-name /tmp/reqs.json --variable-db /tmp/variable-db && \ ogma fret-component-spec --fret-file-name /tmp/reqs.json --target-file-name monitor > CS.hs && \ cabal v1-exec -- runhaskell CS.hs && \ mv monitor ros/src/ && \ cd ros/ && \ source /opt/ros/foxy/setup.bash && \ colcon build && \ echo "Success"
--- reqs.json { "test_componentSpec": { "Functions": [ ], "Internal_variables": [ ], "Other_variables": [ { "name": "a", "type": "bool" } ], "Requirements": [ { "CoCoSpecCode": "true", "fretish": "unimportant", "name": "testCopilot", "ptLTL": "a" } ] } }
--- variables-db ("a","bool","/a","Bool")
Command:
```sh
$ docker run -e "REPO=https://github.com/nasa/ogma" -e "NAME=ogma" -e PAT="ogma-" -e "COMMIT=8082ff83059dec71ac1073dcc5ef3c7ab77ee198" -it ogma-verify-130
Adjust the names of the expected handlers in the ROS and FPrime application generators to match what the Copilot backend is using, as prescribed in the solution proposed for #130.