diff --git a/share/spack/qa/run-doc-tests b/share/spack/qa/run-doc-tests
index e5b684fe59f5176a54ec58f356916d4d2fe93e70..2be5793d369403b76da6edb376d51d9e0d17fa77 100755
--- a/share/spack/qa/run-doc-tests
+++ b/share/spack/qa/run-doc-tests
@@ -1,4 +1,40 @@
 #!/usr/bin/env bash
+#
+# Description:
+#     Builds Spack documentation and checks for
+#     possible syntax errors. Treats warnings as
+#     fatal errors.
+#
+# Usage:
+#     run-doc-tests
+#
+# Notes:
+#     Requires sphinx. Can be installed by running:
+#         `spack install py-sphinx`
+#     or:
+#         `pip install sphinx`
+#     and adding the bin directory to your PATH.
+#
+
+QA_DIR="$(dirname "$0")"
+SPACK_ROOT="$QA_DIR/../../.."
+DOC_DIR="$SPACK_ROOT/lib/spack/docs"
+
+# Move to documentation directory
+# Allows script to be run from anywhere
+cd "$DOC_DIR"
+
+# Gather array of changed files
+changed=($("$QA_DIR/changed_files" lib/spack/docs))
+
+# Cleanup temporary files upon exit or when script is killed
+trap 'make clean' EXIT SIGINT SIGTERM
+
+# Only run tests if documentation was updated
+if [[ "${changed[@]}" ]]; then
+    # Treat warnings as fatal errors
+    make SPHINXOPTS=-W
+else
+    echo No documentation was modified.
+fi
 
-# pass
-exit 0
diff --git a/share/spack/qa/run-flake8-tests b/share/spack/qa/run-flake8-tests
index 6c9f8968e2a5c60126d19882b015e6d25bb5f8a9..6c7b4f2c796f47ddedd57603a3b2cadf4c5c20d2 100755
--- a/share/spack/qa/run-flake8-tests
+++ b/share/spack/qa/run-flake8-tests
@@ -28,7 +28,6 @@ SPACK_ROOT="$QA_DIR/../../.."
 
 # Move to root directory of Spack
 # Allows script to be run from anywhere
-SPACK_ROOT="$(dirname "$0")/../../.."
 cd "$SPACK_ROOT"
 
 # Gather array of changed files