4d5f36126d
There is only a single call-site for all of this thing. I figured perflab could be the judge on whether to reimplement the usage in a more reasonable way, or just delete it---looks like option 2 is good.
66 linhas
2.6 KiB
C++
66 linhas
2.6 KiB
C++
/*
|
|
+----------------------------------------------------------------------+
|
|
| HipHop for PHP |
|
|
+----------------------------------------------------------------------+
|
|
| Copyright (c) 2010-2013 Facebook, Inc. (http://www.facebook.com) |
|
|
+----------------------------------------------------------------------+
|
|
| This source file is subject to version 3.01 of the PHP license, |
|
|
| that is bundled with this package in the file LICENSE, and is |
|
|
| available through the world-wide-web at the following url: |
|
|
| http://www.php.net/license/3_01.txt |
|
|
| If you did not receive a copy of the PHP license and are unable to |
|
|
| obtain it through the world-wide-web, please send a note to |
|
|
| license@php.net so we can mail you a copy immediately. |
|
|
+----------------------------------------------------------------------+
|
|
*/
|
|
|
|
#ifndef incl_HPHP_TEST_CPP_BASE_H_
|
|
#define incl_HPHP_TEST_CPP_BASE_H_
|
|
|
|
#include "hphp/test/ext/test_base.h"
|
|
#include "hphp/util/base.h"
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
/**
|
|
* Testing CPP core library coding. Main goal of this set of unit tests is to
|
|
* make sure runtime/base library has no memory problems while doing the right
|
|
* things. TestCppRun is good at making sure semantically correctness of these
|
|
* classes, but it's hard to run it under valgrind. This set of unit tests,
|
|
* in fact including all extension tests, are written in C++ code directly
|
|
* calling library functions, therefore we can easily run it under valgrind
|
|
* and other tools to detect any coding problems.
|
|
*/
|
|
class TestCppBase : public TestBase {
|
|
public:
|
|
TestCppBase();
|
|
|
|
virtual bool RunTests(const std::string &which);
|
|
|
|
// building blocks
|
|
bool TestSmartAllocator();
|
|
bool TestIpBlockMap();
|
|
|
|
/**
|
|
* Date types. This in turn tests StringData, ArrayData, String,
|
|
* ArrayIter, and other classes.
|
|
*
|
|
* Some of the classes are not tested here, including Object/ObjectData/
|
|
* SmartObject<T>. They are a lot more covered in TestCodeRun with better
|
|
* checking against PHP execution.
|
|
*
|
|
* Comparisons are not directly tested here, either, becuase TestCodeRun has
|
|
* a thorough list of comparisons and it's better to directly compare with
|
|
* PHP's results.
|
|
*/
|
|
bool TestString();
|
|
bool TestArray();
|
|
bool TestObject();
|
|
bool TestVariant();
|
|
bool TestListAssignment();
|
|
};
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
#endif // incl_HPHP_TEST_CPP_BASE_H_
|