init
Some checks failed
Docker. / Ubuntu (push) Has been cancelled
User-agent updater. / User-agent (push) Failing after 15s
Lock Threads / lock (push) Failing after 10s
Waiting for answer. / waiting-for-answer (push) Failing after 22s
Needs user action. / needs-user-action (push) Failing after 8s
Can't reproduce. / cant-reproduce (push) Failing after 8s
Close stale issues and PRs / stale (push) Has been cancelled
Some checks failed
Docker. / Ubuntu (push) Has been cancelled
User-agent updater. / User-agent (push) Failing after 15s
Lock Threads / lock (push) Failing after 10s
Waiting for answer. / waiting-for-answer (push) Failing after 22s
Needs user action. / needs-user-action (push) Failing after 8s
Can't reproduce. / cant-reproduce (push) Failing after 8s
Close stale issues and PRs / stale (push) Has been cancelled
This commit is contained in:
90
Telegram/ThirdParty/dispatch/xcodescripts/check-order.sh
vendored
Normal file
90
Telegram/ThirdParty/dispatch/xcodescripts/check-order.sh
vendored
Normal file
@@ -0,0 +1,90 @@
|
||||
#!/bin/bash -e
|
||||
#
|
||||
# Copyright (c) 2018 Apple Inc. All rights reserved.
|
||||
#
|
||||
# @APPLE_APACHE_LICENSE_HEADER_START@
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
# @APPLE_APACHE_LICENSE_HEADER_END@
|
||||
#
|
||||
|
||||
test "$ACTION" = install || exit 0
|
||||
|
||||
list_objc_syms ()
|
||||
{
|
||||
nm -arch $1 -nU ${DSTROOT}/usr/lib/system/libdispatch.dylib | grep _OBJC | cut -d' ' -f3
|
||||
}
|
||||
|
||||
list_mutable_data_syms ()
|
||||
{
|
||||
nm -arch $1 -m ${DSTROOT}/usr/lib/system/libdispatch.dylib |grep __DATA|egrep -v '(__const|__crash_info)'|sed 's/^.* //'
|
||||
}
|
||||
|
||||
list_objc_order ()
|
||||
{
|
||||
grep '^_OBJC' "${SCRIPT_INPUT_FILE_0}"
|
||||
}
|
||||
|
||||
list_dirty_order ()
|
||||
{
|
||||
grep '^[^#]' "${SCRIPT_INPUT_FILE_1}"
|
||||
}
|
||||
|
||||
list_clean_order ()
|
||||
{
|
||||
grep '^[^#]' "${SCRIPT_INPUT_FILE_2}"
|
||||
}
|
||||
|
||||
fail=
|
||||
|
||||
case "$PLATFORM_NAME" in
|
||||
*simulator) exit 0;;
|
||||
*) ;;
|
||||
esac
|
||||
|
||||
if comm -12 <(list_dirty_order | sort) <(list_clean_order | sort) | grep .; then
|
||||
echo 1>&2 "error: *** SYMBOLS CAN'T BE BOTH CLEAN AND DIRTY ***"
|
||||
comm 1>&2 -12 <(list_dirty_order | sort) <(list_clean_order | sort)
|
||||
fail=t
|
||||
fi
|
||||
|
||||
for arch in $ARCHS; do
|
||||
if test "$PLATFORM_NAME" = macosx -a "$arch" = i386; then
|
||||
continue
|
||||
fi
|
||||
|
||||
if list_mutable_data_syms $arch | sort | uniq -c | grep -qvw 1; then
|
||||
echo 1>&2 "error: *** DUPLICATED SYMBOL NAMES FOR SLICE $arch ***"
|
||||
list_mutable_data_syms $arch | sort | uniq -c | grep -qw 1 1>&2
|
||||
fail=t
|
||||
fi
|
||||
|
||||
if comm -23 <(list_mutable_data_syms $arch | sort) <((list_dirty_order; list_clean_order) | sort) | grep -q .; then
|
||||
echo 1>&2 "error: *** SYMBOLS NOT MARKED CLEAN OR DIRTY FOR SLICE $arch ***"
|
||||
comm 1>&2 -23 <(list_mutable_data_syms $arch | sort) <((list_dirty_order; list_clean_order) | sort)
|
||||
fail=t
|
||||
fi
|
||||
|
||||
if comm -13 <(list_mutable_data_syms $arch | sort) <((list_dirty_order; list_clean_order) | sort) | grep -q .; then
|
||||
echo 1>&2 "warning: *** Found unknown symbols in dirty/clean files for slice $arch ***"
|
||||
comm 1>&2 -13 <(list_mutable_data_syms $arch | sort) <((list_dirty_order; list_clean_order) | sort)
|
||||
fi
|
||||
|
||||
if ! cmp -s <(list_objc_syms $arch) <(list_objc_order); then
|
||||
echo 1>&2 "error: *** SYMBOL ORDER IS NOT WHAT IS EXPECTED FOR SLICE $arch ***"
|
||||
diff 1>&2 -U100 <(list_objc_syms $arch) <(list_objc_order) || fail=t
|
||||
fi
|
||||
done
|
||||
|
||||
test -z "$fail"
|
||||
Reference in New Issue
Block a user