blob: 6a3abafdab921fc0e928ef223b5c8d50c9426c2e [file] [edit]
#!/bin/sh
#
# This script scans Source for certain types of handwritten serialization logic and provides a count
#
cd "$(dirname "$0")/../../Source/"
exclusions_array=(
"Scripts/webkit/tests"
"generate-serializers.py"
"WTF/wtf/ArgumentCoder.h"
"JavaScriptCore/runtime/CachedTypes.cpp"
"gtk"
"glib"
"IPC/win"
"IPC/unix"
"IPC/DaemonCoders.cpp"
"win/WebCoreArgumentCodersWin.cpp"
"Cocoa/ArgumentCodersCocoa.h"
"Cocoa/CoreIPCNSCFObject.h"
"WebCore/platform/graphics/gbm"
);
exclusions_string="";
for ((i = 0; i < ${#exclusions_array[@]}; i++))
do
exclusions_string+="grep -vi ";
exclusions_string+=${exclusions_array[$i]};
exclusions_string+=" | ";
done
exclusions_and_count_string="$exclusions_string wc -l | xargs";
optionalsString="grep -riE \"> decode\((Decoder|IPC::Decoder)\" . | $exclusions_and_count_string";
boolsString="grep -riE \"bool decode\((Decoder|IPC::Decoder)\" . | $exclusions_and_count_string";
enumtraits=$(grep -ri "struct EnumTraits<" | wc -l | xargs);
optionals=$(eval "$optionalsString");
bools=$(eval "$boolsString");
echo "EnumTraits remaining: $enumtraits"
echo "Decoders that return std::optional<>: $optionals"
echo "Legacy decoders that return bool: $bools"
sum=$(($optionals+$bools))
echo "Total decoders remaining: $sum"