Repository files navigation Build-Test Script and Docker Image for CS350
Docker image: Minimalistic docker image with sys161 and os161 build tools, 24% smaller than other os161 images
build-test.sh: os161 compile routines with options for looped tests and Tmux split screen GDB debugging
Built while taking the CS350 Operating Systems course at University of Waterloo
Not under active development as of Aug 9, 2017
Please ⭐ or fork if you found this repo helpful
Login to a University of Waterloo server/terminal or install Docker on own machine
In Terminal, navigate to parent directory of where your os161 directory will be, then run:
$ curl -s https://raw.githubusercontent.com/adrw/docker-cs350-os161/master/bootstrap.sh | bash -s
This will create folder structure, do clean install of os161, and download the Makefile and build-test.sh
There may be places such as in submit.sh that you will need to edit the file and add your username...etc
If on your own computer within your os161 directory, start the Docker container with make
To build image from scratch, run make build or make rebuild (build without cached Docker images)
Compile and run os161 with ./build-test.sh and any of the options below
default: builds from source, runs side by side with GDB in Tmux
-b - only build from source, don't run after
-c - continuous build loop
-d - output debug text when tests are run
-m - run with gdb tmux panels without rebuild
-r - run only (no gdb tmux or rebuild)
-t {} - run test {test alias}
-l {} - loop all following tests {#} times and log result in logs/ directory
-w - clear all logs
Included Tests | Test Aliases
Usage ./build-test.sh -t {test name | test alias} -t {...
Usage (with loops) ./build-test.sh -l {# of loops} -t {test name | test alias} -t {...
A1
l | lock - test locks with sy2
cv | convar - test conditional variables with sy3
t | traffic - A1 test for traffic simulation with 4 15 0 1 0 params
A2A
2aa | onefork - uw-testbin/onefork
2ab | pidcheck - uw-testbin/pidcheck
2ac | widefork - uw-testbin/widefork
2ad | forktest - testbin/forktest
A2B
2ba | hogparty - uw-testbin/hogparty
2bb | sty - testbin/sty
2bc | argtest - uw-testbin/argtest
2bd | argtesttest - uw-testbin/argtesttest
2be | add - testbin/add
A3
3a | vm-data1 - uw-testbin/vm-data1
3b | vm-data3 - uw-testbin/vm-data3
3c | romemwrite - uw-testbin/romemwrite
3d | vm-crash2 - uw-testbin/vm-crash2
3e | vm-data1 - uw-testbin/vm-data1
3el | lvm-data1 - loop 5 x uw-testbin/vm-data1
3f | sort - testbin/sort
3fl | lsort - loop 5 x testbin/sort
3g | lmatmult - testbin/matmult
3gl | lmatmult - loop 5 x testbin/matmult
3h | lwidefork - loop 5 x uw-testbin/widefork
3i | lhogparty - loop 5 x uw-testbin/hogparty
Already have Docker installed and want just an os161 image?
Download image with docker pull andrewparadi/cs350-os161:latest
Run with docker run -it -v {absolute local os161 src directory}:/root/cs350-os161 --entrypoint /bin/bash andrewparadi/cs350-os161:latest
About
Build-Test Script and Docker image for os161 in University of Waterloo CS350 Operating Systems
Topics
Resources
License
Stars
Watchers
Forks
You can’t perform that action at this time.