blob: 8b18d30fc780cfe7a9796c46de72125486d8f75b [file] [log] [blame]
#!/bin/bash
# Copyright 2019 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
set -e
pushd ../..
function compare() {
echo "------ $1 ------"
# +4 and +6 are to skip the copyright headers
tail +4 $2 > /tmp/before
tail +6 < $3 > /tmp/after
diff /tmp/before /tmp/after
}
fx ninja -C out/default host_x64/kazoo host_x64/kazoo_host_tests
out/default/host_x64/exe.unstripped/kazoo_host_tests
out/default.zircon/host-x64-linux-clang/obj/tools/fidl/fidlc \
--json /tmp/syscalls.json \
--files zircon/experimental/syscalls/*.fidl
out/default/host_x64/exe.unstripped/kazoo \
--arm-asm=/tmp/arm-asm.S \
--category=/tmp/syscall-category.inc \
--json=/tmp/definitions.json \
--kernel-branches=/tmp/kernel-branches.S \
--kernel-header=/tmp/kernel-header.h \
--kernel-wrappers=/tmp/kernel-wrappers.inc \
--ktrace=/tmp/ktrace.inc \
--rust=/tmp/definitions.rs \
--syscall-numbers=/tmp/syscall-numbers.h \
--user-header=/tmp/definitions.h \
--vdso-header=/tmp/vdso-definitions.h \
--vdso-wrappers=/tmp/vdso-wrappers.inc \
--x86-asm=/tmp/x86-asm.S \
/tmp/syscalls.json
# These comparisons rely on having an up-to-date build of arm64 and then x64 (to get the outputs of
# banjoc/abigen in the locations below. e.g.
#
# rm -f out/default.zircon/gen/syscalls.abigen && \
# fx set core.arm64 && ninja -C out/default.zircon -j1000 && \
# fx set core.x64 && ninja -C out/default.zircon -j1000
compare "arm-asm" \
"out/default.zircon/user.vdso-arm64-clang.shlib/gen/system/ulib/zircon/zircon/syscalls-arm64.S" \
"/tmp/arm-asm.S"
compare "category" \
"out/default.zircon/kernel-x64-clang/gen/kernel/lib/userabi/zircon/syscall-category.inc" \
"/tmp/syscall-category.inc"
# No comments in .json, so no copyright to skip, so just diff inline instead.
echo "------ json ------"
diff "out/default.zircon/user.vdso-x64-clang.shlib/gen/kernel/syscalls/zircon/definitions.json" \
"/tmp/definitions.json"
compare "kernel-branches" \
"out/default.zircon/kernel-x64-clang/gen/kernel/syscalls/zircon/syscall-kernel-branches.S" \
"/tmp/kernel-branches.S"
compare "kernel-header" \
"out/default.zircon/kernel-x64-clang/gen/kernel/syscalls/zircon/syscall-definitions.h" \
"/tmp/kernel-header.h"
compare "kernel-wrappers" \
"out/default.zircon/user.vdso-x64-clang.shlib/gen/kernel/syscalls/zircon/syscall-kernel-wrappers.inc" \
"/tmp/kernel-wrappers.inc"
compare "ktrace" \
"out/default.zircon/kernel-x64-clang/gen/kernel/lib/ktrace/zircon/syscall-ktrace-info.inc" \
"/tmp/ktrace.inc"
compare "rust" \
"out/default.zircon/user.vdso-x64-clang.shlib/gen/zircon/syscalls/definitions.rs" \
"/tmp/definitions.rs"
compare "syscall-numbers" \
"out/default.zircon/kernel-x64-clang/gen/kernel/syscalls/zircon/zx-syscall-numbers.h" \
"/tmp/syscall-numbers.h"
compare "user-header" \
"out/default.zircon/user.vdso-x64-clang.shlib/gen/zircon/syscalls/definitions.h" \
"/tmp/definitions.h"
compare "vdso-header" \
"out/default.zircon/user.vdso-x64-clang.shlib/gen/system/ulib/zircon/zircon/syscall-vdso-definitions.h" \
"/tmp/vdso-definitions.h"
compare "vdso-wrappers" \
"out/default.zircon/user.vdso-x64-clang.shlib/gen/system/ulib/zircon/zircon/syscall-vdso-wrappers.inc" \
"/tmp/vdso-wrappers.inc"
compare "x86-asm" \
"out/default.zircon/user.vdso-x64-clang.shlib/gen/system/ulib/zircon/zircon/syscalls-x86-64.S" \
"/tmp/x86-asm.S"