diff --git a/tools/test.py b/tools/test.py
index ec8297812fccc0..efb7c0e5b8e475 100755
--- a/tools/test.py
+++ b/tools/test.py
@@ -1410,6 +1410,9 @@ def BuildOptions():
   result.add_option('--abort-on-timeout',
       help='Send SIGABRT instead of SIGTERM to kill processes that time out',
       default=False, action="store_true", dest="abort_on_timeout")
+  result.add_option("--type",
+      help="Type of build (simple, fips)",
+      default=None)
   return result
 
 
@@ -1559,6 +1562,21 @@ def ArgsToTestPaths(test_root, args, suites):
   return paths
 
 
+def get_env_type(vm, options_type):
+  if options_type is not None:
+    env_type = options_type
+  else:
+    if "fips" in subprocess.check_output([vm, "-p",
+                                          "process.versions.openssl"]):
+      env_type = "fips"
+    # NOTE(nikhil): "simple" is the default value for var 'env_type' and should
+    # be set last if no if/elif matches. If you plan to add more values, use
+    # 'elif' above.
+    else:
+      env_type = "simple"
+  return env_type
+
+
 def Main():
   parser = BuildOptions()
   (options, args) = parser.parse_args()
@@ -1641,6 +1659,7 @@ def Main():
           'mode': mode,
           'system': utils.GuessOS(),
           'arch': vmArch,
+          'type': get_env_type(vm, options.type),
         }
         test_list = root.ListTests([], path, context, arch, mode)
         unclassified_tests += test_list