Commit 2dca57b0 authored by Lluis Gifre Renom's avatar Lluis Gifre Renom
Browse files

QKD App & QKD SBI Driver:

- Disabled pointless tests
- Relocated disabled tests
parent cc092746
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -71,9 +71,10 @@ unit_test device:
    - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=INFO --verbose $IMAGE_NAME/tests/test_unitary_emulated.py --junitxml=/opt/results/${IMAGE_NAME}_report_emulated.xml"
    - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=INFO --verbose $IMAGE_NAME/tests/test_unitary_ietf_actn.py --junitxml=/opt/results/${IMAGE_NAME}_report_ietf_actn.xml"
    #- docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=INFO --verbose $IMAGE_NAME/tests/qkd/unit/test_*.py"
    #- docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=INFO --verbose device/tests/qkd/unit/test_qkd_compliance.py"
    #- docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=INFO --verbose device/tests/qkd/unit/test_mock_qkd_node.py"
    #- docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=INFO --verbose device/tests/qkd/unit/test_qkd_error_handling.py"
    #- docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=INFO --verbose $IMAGE_NAME/tests/qkd/unit/test_qkd_compliance.py"
    #- docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=INFO --verbose $IMAGE_NAME/tests/qkd/unit/test_mock_qkd_node.py"
    #- docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=INFO --verbose $IMAGE_NAME/tests/qkd/unit/test_qkd_error_handling.py"
    #- docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=INFO --verbose $IMAGE_NAME/tests/qkd/unit/test_Set_new_configuration.py"
    - docker exec -i $IMAGE_NAME bash -c "coverage report --include='${IMAGE_NAME}/*' --show-missing"
  coverage: '/TOTAL\s+\d+\s+\d+\s+(\d+%)/'
  after_script:
+84 −86
Original line number Diff line number Diff line
@@ -12,7 +12,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.

build app:
build qkd_app:
  variables:
    IMAGE_NAME: 'qkd_app' # name of the microservice
    IMAGE_TAG: 'latest' # tag of the container image (production, development, etc)
@@ -37,88 +37,86 @@ build app:
      - manifests/${IMAGE_NAME}service.yaml
      - .gitlab-ci.yml

# Apply unit test to the component
unit_test app:
  variables:
    IMAGE_NAME: 'qkd_app' # name of the microservice
    IMAGE_TAG: 'latest' # tag of the container image (production, development, etc)
  stage: unit_test
  needs:
    - build app
    - unit_test service
  before_script:
    - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
    - if docker network list | grep teraflowbridge; then echo "teraflowbridge is already created"; else docker network create -d bridge teraflowbridge; fi
    - if docker container ls | grep $IMAGE_NAME; then docker rm -f $IMAGE_NAME; else echo "$IMAGE_NAME image is not in the system"; fi
  script:
    - docker pull "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG"
    - docker run --name $IMAGE_NAME -d -p 10070:10070 -p 8005:8005 -v "$PWD/src/$IMAGE_NAME/tests:/opt/results" --network=teraflowbridge $CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG
    - sleep 5
    - docker ps -a
    - docker logs $IMAGE_NAME
    - docker exec -i $IMAGE_NAME bash -c "coverage run -m pytest --log-level=INFO --verbose $IMAGE_NAME/tests/test_unitary.py --junitxml=/opt/results/${IMAGE_NAME}_report.xml"
    - docker exec -i $IMAGE_NAME bash -c "coverage report --include='${IMAGE_NAME}/*' --show-missing"

    # Mock QKD Nodes Deployment
    - |
      echo "Starting stage: deploy_mock_nodes"
    - pip install flask  # Install Flask to ensure it is available
    - |
      for port in 11111 22222 33333; do
        if lsof -i:$port >/dev/null 2>&1; then
          echo "Freeing up port $port..."
          fuser -k $port/tcp
        fi
      done
      MOCK_NODES_DIR="$PWD/src/tests/tools/mock_qkd_nodes"
      if [ -d "$MOCK_NODES_DIR" ]; then
        cd "$MOCK_NODES_DIR" || exit
        ./start.sh &
        MOCK_NODES_PID=$!
      else
        echo "Error: Mock QKD nodes directory '$MOCK_NODES_DIR' not found."
        exit 1
      fi
      echo "Waiting for mock nodes to be up..."
      RETRY_COUNT=0
      MAX_RETRIES=15
      while [ $RETRY_COUNT -lt $MAX_RETRIES ]; do
        if curl -s http://127.0.0.1:11111 > /dev/null && \
           curl -s http://127.0.0.1:22222 > /dev/null && \
           curl -s http://127.0.0.1:33333 > /dev/null; then
            echo "Mock nodes are up!"
            break
        else
            echo "Mock nodes not ready, retrying in 5 seconds..."
            RETRY_COUNT=$((RETRY_COUNT + 1))
            sleep 5
        fi
      done
      if [ $RETRY_COUNT -ge $MAX_RETRIES ]; then
        echo "Error: Mock nodes failed to start after multiple attempts."
        exit 1
      fi
      
  # Run additional QKD unit tests
    - docker exec -i $IMAGE_NAME bash -c "pytest --log-level=INFO --verbose $IMAGE_NAME/tests/test_create_apps.py"
    - docker exec -i $IMAGE_NAME bash -c "pytest --log-level=INFO --verbose $IMAGE_NAME/tests/test_Set_new_configuration.py"
  coverage: '/TOTAL\s+\d+\s+\d+\s+(\d+%)/'
  after_script:
    - docker rm -f $IMAGE_NAME
    - docker network rm teraflowbridge
  rules:
    - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && ($CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "develop" || $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH)'
    - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "develop"'
    - changes:
      - src/common/**/*.py
      - proto/*.proto
      - src/$IMAGE_NAME/**/*.{py,in,yml}
      - src/$IMAGE_NAME/Dockerfile
      - src/$IMAGE_NAME/tests/*.py
      - src/$IMAGE_NAME/tests/Dockerfile
      - manifests/${IMAGE_NAME}service.yaml
      - .gitlab-ci.yml
  artifacts:
      when: always
      reports:
        junit: src/$IMAGE_NAME/tests/${IMAGE_NAME}_report.xml
## Apply unit test to the component
#unit_test qkd_app:
#  variables:
#    IMAGE_NAME: 'qkd_app' # name of the microservice
#    IMAGE_TAG: 'latest' # tag of the container image (production, development, etc)
#  stage: unit_test
#  needs:
#    - build qkd_app
#  before_script:
#    - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
#    - if docker network list | grep teraflowbridge; then echo "teraflowbridge is already created"; else docker network create -d bridge teraflowbridge; fi
#    - if docker container ls | grep $IMAGE_NAME; then docker rm -f $IMAGE_NAME; else echo "$IMAGE_NAME image is not in the system"; fi
#  script:
#    - docker pull "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG"
#    - docker run --name $IMAGE_NAME -d -p 10070:10070 -p 8005:8005 -v "$PWD/src/$IMAGE_NAME/tests:/opt/results" --network=teraflowbridge $CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG
#    - sleep 5
#    - docker ps -a
#    - docker logs $IMAGE_NAME
#    - docker exec -i $IMAGE_NAME bash -c "coverage run -m pytest --log-level=INFO --verbose $IMAGE_NAME/tests/test_unitary.py --junitxml=/opt/results/${IMAGE_NAME}_report.xml"
#    - docker exec -i $IMAGE_NAME bash -c "coverage report --include='${IMAGE_NAME}/*' --show-missing"
#
#    # Mock QKD Nodes Deployment
#    - |
#      echo "Starting stage: deploy_mock_nodes"
#    - pip install flask  # Install Flask to ensure it is available
#    - |
#      for port in 11111 22222 33333; do
#        if lsof -i:$port >/dev/null 2>&1; then
#          echo "Freeing up port $port..."
#          fuser -k $port/tcp
#        fi
#      done
#      MOCK_NODES_DIR="$PWD/src/tests/tools/mock_qkd_nodes"
#      if [ -d "$MOCK_NODES_DIR" ]; then
#        cd "$MOCK_NODES_DIR" || exit
#        ./start.sh &
#        MOCK_NODES_PID=$!
#      else
#        echo "Error: Mock QKD nodes directory '$MOCK_NODES_DIR' not found."
#        exit 1
#      fi
#      echo "Waiting for mock nodes to be up..."
#      RETRY_COUNT=0
#      MAX_RETRIES=15
#      while [ $RETRY_COUNT -lt $MAX_RETRIES ]; do
#        if curl -s http://127.0.0.1:11111 > /dev/null && \
#           curl -s http://127.0.0.1:22222 > /dev/null && \
#           curl -s http://127.0.0.1:33333 > /dev/null; then
#            echo "Mock nodes are up!"
#            break
#        else
#            echo "Mock nodes not ready, retrying in 5 seconds..."
#            RETRY_COUNT=$((RETRY_COUNT + 1))
#            sleep 5
#        fi
#      done
#      if [ $RETRY_COUNT -ge $MAX_RETRIES ]; then
#        echo "Error: Mock nodes failed to start after multiple attempts."
#        exit 1
#      fi
#      
#  # Run additional QKD unit tests
#    - docker exec -i $IMAGE_NAME bash -c "pytest --log-level=INFO --verbose $IMAGE_NAME/tests/test_create_apps.py"
#  coverage: '/TOTAL\s+\d+\s+\d+\s+(\d+%)/'
#  after_script:
#    - docker rm -f $IMAGE_NAME
#    - docker network rm teraflowbridge
#  rules:
#    - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && ($CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "develop" || $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH)'
#    - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "develop"'
#    - changes:
#      - src/common/**/*.py
#      - proto/*.proto
#      - src/$IMAGE_NAME/**/*.{py,in,yml}
#      - src/$IMAGE_NAME/Dockerfile
#      - src/$IMAGE_NAME/tests/*.py
#      - src/$IMAGE_NAME/tests/Dockerfile
#      - manifests/${IMAGE_NAME}service.yaml
#      - .gitlab-ci.yml
#  artifacts:
#      when: always
#      reports:
#        junit: src/$IMAGE_NAME/tests/${IMAGE_NAME}_report.xml