diff --git a/envsetup.sh b/envsetup.sh
index b534f77..3a04451 100644
--- a/envsetup.sh
+++ b/envsetup.sh
@@ -1838,17 +1838,10 @@
 # Convenience entry point (like m) to use Bazel in AOSP.
 function b()
 (
-    # Look for the --run-soong-tests flag and skip passing --skip-soong-tests to Soong if present
-    local run_tests=$(echo "$@" | grep -ow -- "--run-soong-tests")
-    local bazel_args=(${@/--run-soong-tests})
-    local skip_tests="--skip-soong-tests"
-    if [[ -n $run_tests ]]; then
-        skip_tests=""
-    fi
     # Generate BUILD, bzl files into the synthetic Bazel workspace (out/soong/workspace).
-    _trigger_build "all-modules" bp2build USE_BAZEL_ANALYSIS= $skip_tests || return 1
+    _trigger_build "all-modules" bp2build USE_BAZEL_ANALYSIS= || return 1
     # Then, run Bazel using the synthetic workspace as the --package_path.
-    if [[ -z "$bazel_args" ]]; then
+    if [[ -z "$@" ]]; then
         # If there are no args, show help.
         bazel help
     else
@@ -1856,23 +1849,17 @@
         # Add the --config=bp2build after the first argument that doesn't start with a dash. That should be the bazel
         # command. (build, test, run, ect) If the --config was added at the end, it wouldn't work with commands like:
         # b run //foo -- --args-for-foo
-        local pre_config_args=""
-        local post_config_args=""
-        local start_post_config_args=0
-        for arg in $bazel_args;
+        local previous_args=""
+        for arg in $@;
         do
-            if [[ $start_post_config_args -eq 0 ]]; then
-                pre_config_args+="$arg "
-            else
-                post_config_args+="$arg "
-            fi
-
+            previous_args+="$arg "
+            shift
             if [[ $arg != -* ]]; # if $arg doesn't start with a dash
             then
-                start_post_config_args=1
+                break
             fi
         done
-        eval "bazel $pre_config_args --config=bp2build $post_config_args"
+        bazel $previous_args --config=bp2build $@
     fi
 )
 
