diff --git a/README.md b/README.md index 36d4d7f5..75c451cd 100644 --- a/README.md +++ b/README.md @@ -34,6 +34,28 @@ from the `amd-mainline` branch, while new features are developed in our Users may checkout `amd-staging` to preview upcoming features. +## Testing + +To quickly get the environment (bash shell) for building and testing, run the following commands: +* `cd utils/docker_env` +* `docker compose run app` + +Inside the docker container, clean, build and install the project with tests enabled: +``` +rm -rf build install && cmake -B build -D CMAKE_INSTALL_PREFIX=install -D ENABLE_TESTS=ON -D INSTALL_TESTS=ON -DENABLE_COVERAGE=ON -S . && cmake --build build --target install --parallel 8 +``` + +Note that per the above command, build assets will be stored under `build` directory and installed assets will be stored under `install` directory. + +Then, to run the automated test suite, run the following command: +``` +ctest +``` + +For manual testing, you can find the executable at `install/bin/rocprof-compute` + +NOTE: This Dockerfile uses `rocm/dev-ubuntu-22.04` as the base image + ## How to Cite This software can be cited using a Zenodo diff --git a/utils/docker_env/Dockerfile b/utils/docker_env/Dockerfile new file mode 100644 index 00000000..19c91b4f --- /dev/null +++ b/utils/docker_env/Dockerfile @@ -0,0 +1,29 @@ +# Use a base image +FROM rocm/dev-ubuntu-22.04 + +# Set the working directory +WORKDIR /app + +# Update package list and install prerequisites +RUN apt-get update && apt-get install -y \ + software-properties-common cmake locales \ + && add-apt-repository ppa:deadsnakes/ppa \ + && apt-get update + +# Generate the desired locale +RUN locale-gen en_US.UTF-8 + +# Install Python 3.10 and pip +RUN apt-get install -y python3.10 python3.10-venv python3.10-dev python3-pip + +# Set Python 3.10 as the default python3 +RUN update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 1 + +# Copy your application code to the container +COPY . . + +# Install any dependencies specified in requirements.txt +RUN pip3 install --no-cache-dir -r requirements.txt -r requirements-test.txt + +# Command to run your application +CMD ["/bin/bash"] \ No newline at end of file diff --git a/utils/docker_env/docker-compose.yml b/utils/docker_env/docker-compose.yml new file mode 100644 index 00000000..c040632e --- /dev/null +++ b/utils/docker_env/docker-compose.yml @@ -0,0 +1,10 @@ +services: + app: + build: + context: ../../ + dockerfile: utils/docker_env/Dockerfile + devices: + - /dev/kfd + - /dev/dri + security_opt: + - seccomp:unconfined \ No newline at end of file