57 lines
1.2 KiB
Bash
Executable File
57 lines
1.2 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -e
|
|
|
|
# Source common functions and variables
|
|
# shellcheck source=./_lldb/common.sh
|
|
source "$(dirname "$0")/common.sh"
|
|
|
|
# Parse command-line arguments
|
|
package_path="$DEFAULT_PACKAGE_PATH"
|
|
verbose=False
|
|
interactive=False
|
|
plugin_path=None
|
|
|
|
while [[ $# -gt 0 ]]; do
|
|
case $1 in
|
|
-v|--verbose)
|
|
verbose=True
|
|
shift
|
|
;;
|
|
-i|--interactive)
|
|
interactive=True
|
|
shift
|
|
;;
|
|
-p|--plugin)
|
|
plugin_path="\"$2\""
|
|
shift 2
|
|
;;
|
|
*)
|
|
package_path="$1"
|
|
shift
|
|
;;
|
|
esac
|
|
done
|
|
|
|
# Build the project
|
|
build_project "$package_path"
|
|
|
|
# Prepare LLDB commands
|
|
lldb_commands=(
|
|
"command script import _lldb/test.py"
|
|
"script test.run_tests(\\\"${package_path}/out\\\", [\\\"${package_path}/in.go\\\"], ${verbose}, ${interactive}, ${plugin_path})"
|
|
)
|
|
|
|
# Add quit command if not in interactive mode
|
|
if [ "$interactive" = False ]; then
|
|
lldb_commands+=("quit")
|
|
fi
|
|
|
|
# Run LLDB with prepared commands
|
|
lldb_command_string=""
|
|
for cmd in "${lldb_commands[@]}"; do
|
|
lldb_command_string+=" -O \"$cmd\""
|
|
done
|
|
|
|
eval "$LLDB_PATH $lldb_command_string"
|