From eb287eb274a67a2c5ef75ae5814b947b980c22d9 Mon Sep 17 00:00:00 2001 From: Fried Hoeben Date: Wed, 21 Dec 2022 12:50:41 +0100 Subject: [PATCH] Latest fixtures and FitNesse, build using Java 11 --- Dockerfile | 2 +- README.md | 6 +++--- buildBase.sh | 2 +- buildChrome.sh | 6 +++--- buildChromeWithPdf.sh | 6 +++--- buildCombine.sh | 6 +++--- buildTest.sh | 6 +++--- buildTestLocal.sh | 6 +++--- buildTestWithPdf.sh | 6 +++--- chrome-with-pdf/Dockerfile | 4 ++-- chrome/Dockerfile | 2 +- combine/Dockerfile | 2 +- combineReports.sh | 2 +- compose/docker-compose.yml | 12 ++++++------ pom.xml | 20 ++++++++++++------- tagAndPush.sh | 40 +++++++++++++++++++------------------- test-with-pdf/Dockerfile | 4 ++-- test/Dockerfile | 4 ++-- test/Dockerfile-local | 2 +- 19 files changed, 72 insertions(+), 66 deletions(-) diff --git a/Dockerfile b/Dockerfile index fa293b6..3471a3f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -ARG MAVEN_VERSION=3.8-amazoncorretto-8 +ARG MAVEN_VERSION=3.8-amazoncorretto-11 FROM maven:${MAVEN_VERSION} as build RUN mkdir -p /usr/src WORKDIR /usr/src diff --git a/README.md b/README.md index f703498..a88f1fa 100644 --- a/README.md +++ b/README.md @@ -6,9 +6,9 @@ The tests to be run are expected to be supplied by a volume mounted to `/fitness Test results will be written to `/fitnesse/target`, in surefire xml format (in `/fitnesse/target/failsafe-reports`) and in HTML (in `/fitnesse/target/fitnesse-results`). By mounting a volume the host running the container can access these results after the test run is completed. -There is a base image: hsac/fitnesse-fixtures-test-jre8, which just contains a JRE, FitNesse and hsac fixtures. +There is a base image: hsac/fitnesse-fixtures-test-jre11, which just contains a JRE, FitNesse and hsac fixtures. -And there is an image, based on Selenium's standalone chrome one: hsac/fitnesse-fixtures-test-jre8-chrome, which also contains a local Chrome browser and is configured to have BrowserTest use that. +And there is an image, based on Selenium's standalone chrome one: hsac/fitnesse-fixtures-test-jre11-chrome, which also contains a local Chrome browser and is configured to have BrowserTest use that. The image which contains Chrome also exposes its Selenium log (in `/fitnesse/target/selenium-log`). Both images are preconfigured to start a FitNesse run immediately when started and you are expected to supply a suite to run using a system property value for 'fitnesseSuiteToRun' @@ -23,4 +23,4 @@ A sample of how to do this can be found in this repo's `combineReports.sh`. The images also support re-running of failed tests. This can be useful when tests are a bit unstable, so they can be retried before declaring failure. This can be enabled by supplying the environment variabble `RE_RUN_FAILED` with value `true`. The HTML of the re-run will be generated in `/fitnesse/target/fitnesse-rerun-results`, the surefire xml -report in `/fitnesse/target/failsafe-reports` will be overridden. \ No newline at end of file +report in `/fitnesse/target/failsafe-reports` will be overridden. diff --git a/buildBase.sh b/buildBase.sh index c72b82c..8eca115 100755 --- a/buildBase.sh +++ b/buildBase.sh @@ -2,6 +2,6 @@ BASEDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" VERSION=${1:-latest} -IMAGE=hsac/fitnesse-fixtures-test-jre8:base-${VERSION} +IMAGE=hsac/fitnesse-fixtures-test-jre11:base-${VERSION} docker build --pull -t ${IMAGE} . diff --git a/buildChrome.sh b/buildChrome.sh index c491acb..c3a5730 100755 --- a/buildChrome.sh +++ b/buildChrome.sh @@ -2,11 +2,11 @@ VERSION=${1:-latest} SELENIUM_VERSION=${2:-latest} -SELENIUM_IMAGE=seleniarm/standalone-chromium:${SELENIUM_VERSION} -TEST_IMAGE=hsac/fitnesse-fixtures-test-jre8:${VERSION} +export SELENIUM_IMAGE=seleniarm/standalone-chromium:${SELENIUM_VERSION} +export TEST_IMAGE=hsac/fitnesse-fixtures-test-jre11:${VERSION} BASEDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" -IMAGE=hsac/fitnesse-fixtures-test-jre8-chrome:${VERSION} +IMAGE=hsac/fitnesse-fixtures-test-jre11-chrome:${VERSION} docker pull ${SELENIUM_IMAGE} diff --git a/buildChromeWithPdf.sh b/buildChromeWithPdf.sh index 0ab7a26..5716f92 100755 --- a/buildChromeWithPdf.sh +++ b/buildChromeWithPdf.sh @@ -3,9 +3,9 @@ VERSION=${1:-latest} BASEDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" -IMAGE=hsac/fitnesse-fixtures-test-jre8-chrome-with-pdf:${VERSION} -TEST_CHROME_IMAGE=hsac/fitnesse-fixtures-test-jre8-chrome:${VERSION} -TEST_PDF_IMAGE=hsac/fitnesse-fixtures-test-jre8-with-pdf:${VERSION} +IMAGE=hsac/fitnesse-fixtures-test-jre11-chrome-with-pdf:${VERSION} +export TEST_CHROME_IMAGE=hsac/fitnesse-fixtures-test-jre11-chrome:${VERSION} +export TEST_PDF_IMAGE=hsac/fitnesse-fixtures-test-jre11-with-pdf:${VERSION} docker build --build-arg TEST_CHROME_IMAGE --build-arg TEST_PDF_IMAGE -t ${IMAGE} chrome-with-pdf diff --git a/buildCombine.sh b/buildCombine.sh index 7772867..4bcaaf2 100755 --- a/buildCombine.sh +++ b/buildCombine.sh @@ -5,9 +5,9 @@ GRAALVM_VERSION=${2:-latest} BUSYBOX_VERSION=latest BASEDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" -BASE_IMAGE=hsac/fitnesse-fixtures-test-jre8:base-${VERSION} -GRAALVM_IMAGE=ghcr.io/graalvm/native-image:${GRAALVM_VERSION} -BUSYBOX_IMAGE=busybox:${BUSYBOX_VERSION} +export BASE_IMAGE=hsac/fitnesse-fixtures-test-jre11:base-${VERSION} +export GRAALVM_IMAGE=ghcr.io/graalvm/native-image:${GRAALVM_VERSION} +export BUSYBOX_IMAGE=busybox:${BUSYBOX_VERSION} IMAGE=hsac/fitnesse-fixtures-combine:${VERSION} docker pull ${GRAALVM_IMAGE} diff --git a/buildTest.sh b/buildTest.sh index 5b19872..175d062 100755 --- a/buildTest.sh +++ b/buildTest.sh @@ -2,11 +2,11 @@ BASEDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" VERSION=${1:-latest} -JRE_VERSION=${2:-8-jre} +JRE_VERSION=${2:-11-jre} JRE_IMAGE=eclipse-temurin:${JRE_VERSION} -BASE_IMAGE=hsac/fitnesse-fixtures-test-jre8:base-${VERSION} -IMAGE=hsac/fitnesse-fixtures-test-jre8:${VERSION} +export BASE_IMAGE=hsac/fitnesse-fixtures-test-jre11:base-${VERSION} +export IMAGE=hsac/fitnesse-fixtures-test-jre11:${VERSION} docker pull ${JRE_IMAGE} diff --git a/buildTestLocal.sh b/buildTestLocal.sh index e18c3d6..8c35443 100755 --- a/buildTestLocal.sh +++ b/buildTestLocal.sh @@ -1,10 +1,10 @@ #!/usr/bin/env bash -JRE_VERSION=${1:-8-jre} -JRE_IMAGE=eclipse-temurin:${JRE_VERSION} +JRE_VERSION=${1:-11-jre} +export JRE_IMAGE=eclipse-temurin:${JRE_VERSION} BASEDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" -IMAGE=hsac/fitnesse-fixtures-test-jre8:latest +IMAGE=hsac/fitnesse-fixtures-test-jre11:latest docker pull ${JRE_IMAGE} diff --git a/buildTestWithPdf.sh b/buildTestWithPdf.sh index aad26e1..6597f73 100755 --- a/buildTestWithPdf.sh +++ b/buildTestWithPdf.sh @@ -2,9 +2,9 @@ BASEDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" VERSION=${1:-latest} -BASE_IMAGE=hsac/fitnesse-fixtures-test-jre8:base-${VERSION} -TEST_IMAGE=hsac/fitnesse-fixtures-test-jre8:${VERSION} -IMAGE=hsac/fitnesse-fixtures-test-jre8-with-pdf:${VERSION} +export BASE_IMAGE=hsac/fitnesse-fixtures-test-jre11:base-${VERSION} +export TEST_IMAGE=hsac/fitnesse-fixtures-test-jre11:${VERSION} +IMAGE=hsac/fitnesse-fixtures-test-jre11-with-pdf:${VERSION} docker build --build-arg BASE_IMAGE --build-arg TEST_IMAGE -t ${IMAGE} test-with-pdf diff --git a/chrome-with-pdf/Dockerfile b/chrome-with-pdf/Dockerfile index d7bcd90..30dc664 100644 --- a/chrome-with-pdf/Dockerfile +++ b/chrome-with-pdf/Dockerfile @@ -1,5 +1,5 @@ -ARG TEST_PDF_IMAGE=hsac/fitnesse-fixtures-test-jre8-with-pdf:latest -ARG TEST_CHROME_IMAGE=hsac/fitnesse-fixtures-test-jre8-chrome:latest +ARG TEST_PDF_IMAGE=hsac/fitnesse-fixtures-test-jre11-with-pdf:latest +ARG TEST_CHROME_IMAGE=hsac/fitnesse-fixtures-test-jre11-chrome:latest FROM ${TEST_PDF_IMAGE} as test diff --git a/chrome/Dockerfile b/chrome/Dockerfile index ac74166..e611f95 100644 --- a/chrome/Dockerfile +++ b/chrome/Dockerfile @@ -1,4 +1,4 @@ -ARG TEST_IMAGE=hsac/fitnesse-fixtures-test-jre8:latest +ARG TEST_IMAGE=hsac/fitnesse-fixtures-test-jre11:latest ARG SELENIUM_IMAGE=seleniarm/standalone-chromium:latest FROM ${TEST_IMAGE} as hsac-fixtures diff --git a/combine/Dockerfile b/combine/Dockerfile index 21a2745..10048b3 100644 --- a/combine/Dockerfile +++ b/combine/Dockerfile @@ -1,4 +1,4 @@ -ARG BASE_IMAGE=hsac/fitnesse-fixtures-test-jre8:base-latest +ARG BASE_IMAGE=hsac/fitnesse-fixtures-test-jre11:base-latest ARG GRAALVM_IMAGE=ghcr.io/graalvm/native-image:latest ARG BUSYBOX_IMAGE=busybox:latest diff --git a/combineReports.sh b/combineReports.sh index e86ab89..17d70bc 100755 --- a/combineReports.sh +++ b/combineReports.sh @@ -2,7 +2,7 @@ BASEDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" VERSION=${1:-latest} -IMAGE=hsac/fitnesse-fixtures-test-jre8:${VERSION} +IMAGE=hsac/fitnesse-fixtures-test-jre11:${VERSION} docker run --rm --entrypoint /fitnesse/htmlReportIndexGenerator.sh \ -v ${BASEDIR}/target/fitnesse-results/:/fitnesse/target/fitnesse-results \ diff --git a/compose/docker-compose.yml b/compose/docker-compose.yml index 1fba09e..8d230cc 100644 --- a/compose/docker-compose.yml +++ b/compose/docker-compose.yml @@ -2,37 +2,37 @@ version: "3.7" services: test: - image: hsac/fitnesse-fixtures-test-jre8:${VERSION} + image: hsac/fitnesse-fixtures-test-jre11:${VERSION} environment: - RE_RUN_FAILED=true command: -DfitnesseSuiteToRun=SampleTests.SlimTests.UtilityFixtures test-with-pdf: - image: hsac/fitnesse-fixtures-test-jre8-with-pdf:${VERSION} + image: hsac/fitnesse-fixtures-test-jre11-with-pdf:${VERSION} environment: - RE_RUN_FAILED=true command: -DfitnesseSuiteToRun=SampleTests.SlimTests.UtilityFixtures chrome: - image: hsac/fitnesse-fixtures-test-jre8-chrome:${VERSION} + image: hsac/fitnesse-fixtures-test-jre11-chrome:${VERSION} environment: - RE_RUN_FAILED=true command: -DfitnesseSuiteToRun=SampleTests.SlimTests.BrowserTest chrome-with-pdf: - image: hsac/fitnesse-fixtures-test-jre8-chrome-with-pdf:${VERSION} + image: hsac/fitnesse-fixtures-test-jre11-chrome-with-pdf:${VERSION} environment: - RE_RUN_FAILED=true command: -DfitnesseSuiteToRun=SampleTests.SlimTests.BrowserTest chrome-suffix: - image: hsac/fitnesse-fixtures-test-jre8-chrome:${VERSION}-${VERSION_SUFFIX} + image: hsac/fitnesse-fixtures-test-jre11-chrome:${VERSION}-${VERSION_SUFFIX} environment: - RE_RUN_FAILED=true command: -DfitnesseSuiteToRun=SampleTests.SlimTests.BrowserTest chrome-with-pdf-suffix: - image: hsac/fitnesse-fixtures-test-jre8-chrome-with-pdf:${VERSION}-${VERSION_SUFFIX} + image: hsac/fitnesse-fixtures-test-jre11-chrome-with-pdf:${VERSION}-${VERSION_SUFFIX} environment: - RE_RUN_FAILED=true command: -DfitnesseSuiteToRun=SampleTests.SlimTests.BrowserTest diff --git a/pom.xml b/pom.xml index eb1f250..6eb5a80 100644 --- a/pom.xml +++ b/pom.xml @@ -36,9 +36,10 @@ UTF-8 + 2020-01-01T00:00:00Z UTF-8 - 20221219 - 5.2.37 + 20231029 + 5.3.0 0.0.5 0.5.0 test/wiki/fixtures @@ -121,17 +122,21 @@ org.apache.maven.plugins maven-compiler-plugin - 3.6.1 + 3.11.0 - 1.8 - 1.8 + 11 ${project.build.sourceEncoding} true + + org.apache.maven.plugins + maven-resources-plugin + 3.3.1 + maven-clean-plugin - 3.0.0 + 3.3.1 @@ -149,7 +154,7 @@ dependencies are available to Fitnesse without need to have Maven to run tests. --> maven-dependency-plugin - 3.0.0 + 3.1.1 copy-dependencies-to-wiki-fixtures @@ -216,6 +221,7 @@ nl.hsac.fitnesse.junit.reportmerge.HtmlReportIndexGenerator + true true combine/target/hsac-html-report-generator.jar diff --git a/tagAndPush.sh b/tagAndPush.sh index 392321c..5366a1c 100755 --- a/tagAndPush.sh +++ b/tagAndPush.sh @@ -4,21 +4,21 @@ VERSION=$1 PLATFORM=$2 if [[ "$PLATFORM" != "" ]]; then - docker tag hsac/fitnesse-fixtures-test-jre8:base-${VERSION} hsac/fitnesse-fixtures-test-jre8:base-${VERSION}-${PLATFORM} + docker tag hsac/fitnesse-fixtures-test-jre11:base-${VERSION} hsac/fitnesse-fixtures-test-jre11:base-${VERSION}-${PLATFORM} docker tag hsac/fitnesse-fixtures-combine:${VERSION} hsac/fitnesse-fixtures-combine:${VERSION}-${PLATFORM} - docker tag hsac/fitnesse-fixtures-test-jre8:${VERSION} hsac/fitnesse-fixtures-test-jre8:${VERSION}-${PLATFORM} - docker tag hsac/fitnesse-fixtures-test-jre8-with-pdf:${VERSION} hsac/fitnesse-fixtures-test-jre8-with-pdf:${VERSION}-${PLATFORM} - docker tag hsac/fitnesse-fixtures-test-jre8-chrome:${VERSION} hsac/fitnesse-fixtures-test-jre8-chrome:${VERSION}-${PLATFORM} - docker tag hsac/fitnesse-fixtures-test-jre8-chrome-with-pdf:${VERSION} hsac/fitnesse-fixtures-test-jre8-chrome-with-pdf:${VERSION}-${PLATFORM} + docker tag hsac/fitnesse-fixtures-test-jre11:${VERSION} hsac/fitnesse-fixtures-test-jre11:${VERSION}-${PLATFORM} + docker tag hsac/fitnesse-fixtures-test-jre11-with-pdf:${VERSION} hsac/fitnesse-fixtures-test-jre11-with-pdf:${VERSION}-${PLATFORM} + docker tag hsac/fitnesse-fixtures-test-jre11-chrome:${VERSION} hsac/fitnesse-fixtures-test-jre11-chrome:${VERSION}-${PLATFORM} + docker tag hsac/fitnesse-fixtures-test-jre11-chrome-with-pdf:${VERSION} hsac/fitnesse-fixtures-test-jre11-chrome-with-pdf:${VERSION}-${PLATFORM} fi echo "Pushing base-${VERSION}-${PLATFORM}" -docker push hsac/fitnesse-fixtures-test-jre8:base-${VERSION}-${PLATFORM} +docker push hsac/fitnesse-fixtures-test-jre11:base-${VERSION}-${PLATFORM} if [[ "$VERSION" != "latest" ]]; then - docker tag hsac/fitnesse-fixtures-test-jre8:base-${VERSION}-${PLATFORM} hsac/fitnesse-fixtures-test-jre8:base-latest-${PLATFORM} + docker tag hsac/fitnesse-fixtures-test-jre11:base-${VERSION}-${PLATFORM} hsac/fitnesse-fixtures-test-jre11:base-latest-${PLATFORM} echo "Pushing base-latest-${PLATFORM}" - docker push hsac/fitnesse-fixtures-test-jre8:base-latest-${PLATFORM} + docker push hsac/fitnesse-fixtures-test-jre11:base-latest-${PLATFORM} fi echo "Pushing combine:${VERSION}-${PLATFORM}" @@ -31,37 +31,37 @@ if [[ "$VERSION" != "latest" ]]; then fi echo "Pushing test:${VERSION}-${PLATFORM}" -docker push hsac/fitnesse-fixtures-test-jre8:${VERSION}-${PLATFORM} +docker push hsac/fitnesse-fixtures-test-jre11:${VERSION}-${PLATFORM} if [[ "$VERSION" != "latest" ]]; then - docker tag hsac/fitnesse-fixtures-test-jre8:${VERSION}-${PLATFORM} hsac/fitnesse-fixtures-test-jre8:latest-${PLATFORM} + docker tag hsac/fitnesse-fixtures-test-jre11:${VERSION}-${PLATFORM} hsac/fitnesse-fixtures-test-jre11:latest-${PLATFORM} echo "Pushing test:latest-${PLATFORM}" - docker push hsac/fitnesse-fixtures-test-jre8:latest-${PLATFORM} + docker push hsac/fitnesse-fixtures-test-jre11:latest-${PLATFORM} fi echo "Pushing test-with-pdf:${VERSION}-${PLATFORM}" -docker push hsac/fitnesse-fixtures-test-jre8-with-pdf:${VERSION}-${PLATFORM} +docker push hsac/fitnesse-fixtures-test-jre11-with-pdf:${VERSION}-${PLATFORM} if [[ "$VERSION" != "latest" ]]; then - docker tag hsac/fitnesse-fixtures-test-jre8-with-pdf:${VERSION}-${PLATFORM} hsac/fitnesse-fixtures-test-jre8-with-pdf:latest-${PLATFORM} + docker tag hsac/fitnesse-fixtures-test-jre11-with-pdf:${VERSION}-${PLATFORM} hsac/fitnesse-fixtures-test-jre11-with-pdf:latest-${PLATFORM} echo "Pushing with-pdf:latest-${PLATFORM}" - docker push hsac/fitnesse-fixtures-test-jre8-with-pdf:latest-${PLATFORM} + docker push hsac/fitnesse-fixtures-test-jre11-with-pdf:latest-${PLATFORM} fi echo "Pushing chrome:${VERSION}-${PLATFORM}" -docker push hsac/fitnesse-fixtures-test-jre8-chrome:${VERSION}-${PLATFORM} +docker push hsac/fitnesse-fixtures-test-jre11-chrome:${VERSION}-${PLATFORM} if [[ "$VERSION" != "latest" ]]; then - docker tag hsac/fitnesse-fixtures-test-jre8-chrome:${VERSION}-${PLATFORM} hsac/fitnesse-fixtures-test-jre8-chrome:latest-${PLATFORM} + docker tag hsac/fitnesse-fixtures-test-jre11-chrome:${VERSION}-${PLATFORM} hsac/fitnesse-fixtures-test-jre11-chrome:latest-${PLATFORM} echo "Pushing chrome:latest-${PLATFORM}" - docker push hsac/fitnesse-fixtures-test-jre8-chrome:latest-${PLATFORM} + docker push hsac/fitnesse-fixtures-test-jre11-chrome:latest-${PLATFORM} fi echo "Pushing chrome-with-pdf:${VERSION}-${PLATFORM}" -docker push hsac/fitnesse-fixtures-test-jre8-chrome-with-pdf:${VERSION}-${PLATFORM} +docker push hsac/fitnesse-fixtures-test-jre11-chrome-with-pdf:${VERSION}-${PLATFORM} if [[ "$VERSION" != "latest" ]]; then - docker tag hsac/fitnesse-fixtures-test-jre8-chrome-with-pdf:${VERSION}-${PLATFORM} hsac/fitnesse-fixtures-test-jre8-chrome-with-pdf:latest-${PLATFORM} + docker tag hsac/fitnesse-fixtures-test-jre11-chrome-with-pdf:${VERSION}-${PLATFORM} hsac/fitnesse-fixtures-test-jre11-chrome-with-pdf:latest-${PLATFORM} echo "Pushing chrome-with-pdf:latest-${PLATFORM}" - docker push hsac/fitnesse-fixtures-test-jre8-chrome-with-pdf:latest-${PLATFORM} + docker push hsac/fitnesse-fixtures-test-jre11-chrome-with-pdf:latest-${PLATFORM} fi diff --git a/test-with-pdf/Dockerfile b/test-with-pdf/Dockerfile index 9487181..5dfe538 100644 --- a/test-with-pdf/Dockerfile +++ b/test-with-pdf/Dockerfile @@ -1,5 +1,5 @@ -ARG BASE_IMAGE=hsac/fitnesse-fixtures-test-jre8:base-latest -ARG TEST_IMAGE=hsac/fitnesse-fixtures-test-jre8:latest +ARG BASE_IMAGE=hsac/fitnesse-fixtures-test-jre11:base-latest +ARG TEST_IMAGE=hsac/fitnesse-fixtures-test-jre11:latest FROM ${BASE_IMAGE} as base RUN mvn compile -P withPdf diff --git a/test/Dockerfile b/test/Dockerfile index 1253a93..739ebb5 100644 --- a/test/Dockerfile +++ b/test/Dockerfile @@ -1,5 +1,5 @@ -ARG BASE_IMAGE=hsac/fitnesse-fixtures-test-jre8:base-latest -ARG JRE_IMAGE=eclipse-temurin:8-jre +ARG BASE_IMAGE=hsac/fitnesse-fixtures-test-jre11:base-latest +ARG JRE_IMAGE=eclipse-temurin:11-jre FROM ${BASE_IMAGE} as base diff --git a/test/Dockerfile-local b/test/Dockerfile-local index 18bf905..98d7c3e 100644 --- a/test/Dockerfile-local +++ b/test/Dockerfile-local @@ -1,4 +1,4 @@ -ARG JRE_IMAGE=eclipse-temurin:8-jre +ARG JRE_IMAGE=eclipse-temurin:11-jre FROM ${JRE_IMAGE} RUN mkdir -p /fitnesse/wiki/fixtures/nl/hsac/fitnesse