Skip to content

Commit ac68e22

Browse files
jbachorikclaude
andcommitted
Automatically find built libraries
Search for libjavaProfiler.so if not at expected release path. This handles cases where build produces libraries at different paths (debug vs release, different platforms, etc). Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
1 parent cfa41a9 commit ac68e22

1 file changed

Lines changed: 25 additions & 19 deletions

File tree

ddprof-lib/benchmarks/branch-prediction/compare_branch_prediction.sh

Lines changed: 25 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -142,28 +142,40 @@ main() {
142142
cd "${BASELINE_WORKTREE}"
143143
./gradlew ddprof-lib:build -x test
144144

145-
# Verify baseline library was built
145+
# Find the baseline library (prefer release, fallback to any .so)
146146
local baseline_lib_check="${BASELINE_WORKTREE}/ddprof-lib/build/lib/main/release/linux/x64/libjavaProfiler.so"
147147
if [ ! -f "${baseline_lib_check}" ]; then
148-
log_error "Baseline build did not produce library at ${baseline_lib_check}"
149-
log_info "Checking what was built:"
150-
find "${BASELINE_WORKTREE}/ddprof-lib/build" -name "*.so" -type f 2>/dev/null || true
151-
exit 1
148+
log_warn "Expected library not at ${baseline_lib_check}, searching for alternatives..."
149+
baseline_lib_check=$(find "${BASELINE_WORKTREE}/ddprof-lib/build" -name "libjavaProfiler.so" -type f 2>/dev/null | grep -E "(release|main)" | head -1)
150+
if [ -z "${baseline_lib_check}" ]; then
151+
log_error "Baseline build did not produce any libjavaProfiler.so"
152+
log_info "Files built:"
153+
find "${BASELINE_WORKTREE}/ddprof-lib/build" -name "*.so" -type f 2>/dev/null || true
154+
exit 1
155+
fi
156+
log_info "Using baseline library: ${baseline_lib_check}"
152157
fi
158+
BASELINE_LIB="${baseline_lib_check}"
153159

154160
# Build optimized
155161
log_step "4/6: Building optimized version..."
156162
cd "${OPTIMIZED_WORKTREE}"
157163
./gradlew ddprof-lib:build -x test
158164

159-
# Verify optimized library was built
165+
# Find the optimized library (prefer release, fallback to any .so)
160166
local optimized_lib_check="${OPTIMIZED_WORKTREE}/ddprof-lib/build/lib/main/release/linux/x64/libjavaProfiler.so"
161167
if [ ! -f "${optimized_lib_check}" ]; then
162-
log_error "Optimized build did not produce library at ${optimized_lib_check}"
163-
log_info "Checking what was built:"
164-
find "${OPTIMIZED_WORKTREE}/ddprof-lib/build" -name "*.so" -type f 2>/dev/null || true
165-
exit 1
168+
log_warn "Expected library not at ${optimized_lib_check}, searching for alternatives..."
169+
optimized_lib_check=$(find "${OPTIMIZED_WORKTREE}/ddprof-lib/build" -name "libjavaProfiler.so" -type f 2>/dev/null | grep -E "(release|main)" | head -1)
170+
if [ -z "${optimized_lib_check}" ]; then
171+
log_error "Optimized build did not produce any libjavaProfiler.so"
172+
log_info "Files built:"
173+
find "${OPTIMIZED_WORKTREE}/ddprof-lib/build" -name "*.so" -type f 2>/dev/null || true
174+
exit 1
175+
fi
176+
log_info "Using optimized library: ${optimized_lib_check}"
166177
fi
178+
OPTIMIZED_LIB="${optimized_lib_check}"
167179

168180
# Test baseline
169181
log_step "5/6: Testing baseline version..."
@@ -178,17 +190,11 @@ main() {
178190
# Run tests from optimized worktree but with baseline library
179191
cd "${OPTIMIZED_WORKTREE}/ddprof-lib/benchmarks/branch-prediction"
180192

181-
# Use absolute path for baseline library
182-
local baseline_lib
183-
baseline_lib="$(cd "${BASELINE_WORKTREE}" && pwd)/ddprof-lib/build/lib/main/release/linux/x64/libjavaProfiler.so"
184-
185-
if [ ! -f "${baseline_lib}" ]; then
186-
log_error "Baseline profiler library not found at ${baseline_lib}"
187-
exit 1
188-
fi
193+
log_info "Using baseline library: ${BASELINE_LIB}"
194+
log_info "Using optimized library: ${OPTIMIZED_LIB}"
189195

190196
# Temporarily override PROFILER_LIB for baseline test
191-
PROFILER_LIB_OVERRIDE="${baseline_lib}" \
197+
PROFILER_LIB_OVERRIDE="${BASELINE_LIB}" \
192198
"${baseline_test_script}" "${benchmark}" "baseline"
193199

194200
# Test optimized

0 commit comments

Comments
 (0)