The inclusions were removed with the following very crude script and the
resulting breakage was fixed up by hand. The manual fixups did either
revert the changes done by the script, replace a generic header with a more
specific one or replace a header with a forward declaration.
find . -name "*.idl" | grep -v web-platform | grep -v third_party | while read path; do
interfaces=$(grep "^\(class\|interface\).*:.*" "$path" | cut -d' ' -f2)
if [ -n "$interfaces" ]; then
if [[ "$interfaces" == *$'\n'* ]]; then
regexp="\("
for i in $interfaces; do regexp="$regexp$i\|"; done
regexp="${regexp%%\\\|}\)"
else
regexp="$interfaces"
fi
interface=$(basename "$path")
rg -l "#include.*${interface%%.idl}.h" . | while read path2; do
hits=$(grep -v "#include.*${interface%%.idl}.h" "$path2" | grep -c "$regexp" )
if [ $hits -eq 0 ]; then
echo "Removing ${interface} from ${path2}"
grep -v "#include.*${interface%%.idl}.h" "$path2" > "$path2".tmp
mv -f "$path2".tmp "$path2"
fi
done
fi
done
Differential Revision: https://phabricator.services.mozilla.com/D55443
86 lines
2.2 KiB
C++
86 lines
2.2 KiB
C++
/* -*- Mode: C++; c-basic-offset: 2; indent-tabs-mode: nil; tab-width: 8 -*- */
|
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
#ifndef mozilla__ipdltest_IPDLUnitTests_h
|
|
#define mozilla__ipdltest_IPDLUnitTests_h 1
|
|
|
|
#include "base/message_loop.h"
|
|
#include "base/process.h"
|
|
#include "chrome/common/ipc_channel.h"
|
|
|
|
#include "nsCOMPtr.h"
|
|
#include "nsDebug.h"
|
|
#include "nsServiceManagerUtils.h" // do_GetService()
|
|
#include "nsWidgetsCID.h" // NS_APPSHELL_CID
|
|
#include "nsXULAppAPI.h"
|
|
|
|
#define MOZ_IPDL_TESTFAIL_LABEL "TEST-UNEXPECTED-FAIL"
|
|
#define MOZ_IPDL_TESTPASS_LABEL "TEST-PASS"
|
|
#define MOZ_IPDL_TESTINFO_LABEL "TEST-INFO"
|
|
|
|
namespace mozilla {
|
|
namespace _ipdltest {
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// both processes
|
|
const char* IPDLUnitTestName();
|
|
|
|
// NB: these are named like the similar functions in
|
|
// xpcom/test/TestHarness.h. The names should nominally be kept in
|
|
// sync.
|
|
|
|
inline void fail(const char* fmt, ...) {
|
|
va_list ap;
|
|
|
|
fprintf(stderr, MOZ_IPDL_TESTFAIL_LABEL " | %s | ", IPDLUnitTestName());
|
|
|
|
va_start(ap, fmt);
|
|
vfprintf(stderr, fmt, ap);
|
|
va_end(ap);
|
|
|
|
fputc('\n', stderr);
|
|
|
|
MOZ_CRASH("failed test");
|
|
}
|
|
|
|
inline void passed(const char* fmt, ...) {
|
|
va_list ap;
|
|
|
|
printf(MOZ_IPDL_TESTPASS_LABEL " | %s | ", IPDLUnitTestName());
|
|
|
|
va_start(ap, fmt);
|
|
vprintf(fmt, ap);
|
|
va_end(ap);
|
|
|
|
fputc('\n', stdout);
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// parent process only
|
|
|
|
class IPDLUnitTestSubprocess;
|
|
|
|
extern void* gParentActor;
|
|
extern IPDLUnitTestSubprocess* gSubprocess;
|
|
|
|
void IPDLUnitTestMain(void* aData);
|
|
|
|
void QuitParent();
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// child process only
|
|
|
|
extern void* gChildActor;
|
|
|
|
void IPDLUnitTestChildInit(IPC::Channel* transport, base::ProcessId parentPid,
|
|
MessageLoop* worker);
|
|
|
|
void QuitChild();
|
|
|
|
} // namespace _ipdltest
|
|
} // namespace mozilla
|
|
|
|
#endif // ifndef mozilla__ipdltest_IPDLUnitTests_h
|