| Index: test/cctest/test-libplatform.h
|
| diff --git a/test/cctest/test-cpu.cc b/test/cctest/test-libplatform.h
|
| similarity index 62%
|
| copy from test/cctest/test-cpu.cc
|
| copy to test/cctest/test-libplatform.h
|
| index 06966c68c86296e510edb8899f4d7deb0343f108..6be12d29d899301a24992f8680a3366afec5d829 100644
|
| --- a/test/cctest/test-cpu.cc
|
| +++ b/test/cctest/test-libplatform.h
|
| @@ -25,31 +25,57 @@
|
| // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
| // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
|
| +#ifndef TEST_LIBPLATFORM_H_
|
| +#define TEST_LIBPLATFORM_H_
|
| +
|
| #include "v8.h"
|
|
|
| #include "cctest.h"
|
| -#include "cpu.h"
|
|
|
| using namespace v8::internal;
|
|
|
| +class TestTask : public v8::Task {
|
| + public:
|
| + explicit TestTask(bool expected_to_run)
|
| + : expected_to_run_(expected_to_run), executed_(false) {}
|
| + TestTask() : expected_to_run_(false), executed_(false) {}
|
| + virtual ~TestTask() {
|
| + CHECK_EQ(expected_to_run_, executed_);
|
| + }
|
| +
|
| + // v8::Task implementation.
|
| + virtual void Run() V8_OVERRIDE { executed_ = true; }
|
| +
|
| + private:
|
| + bool expected_to_run_;
|
| + bool executed_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(TestTask);
|
| +};
|
| +
|
| +
|
| +class TestThread : public Thread {
|
| + public:
|
| + explicit TestThread(v8::Task* task)
|
| + : Thread("libplatform TestThread"), semaphore_(0), task_(task) {}
|
| + virtual ~TestThread() {}
|
|
|
| -TEST(FeatureImplications) {
|
| - // Test for features implied by other features.
|
| - CPU cpu;
|
| + void Signal() { semaphore_.Signal(); }
|
|
|
| - // ia32 and x64 features
|
| - CHECK(!cpu.has_sse() || cpu.has_mmx());
|
| - CHECK(!cpu.has_sse2() || cpu.has_sse());
|
| - CHECK(!cpu.has_sse3() || cpu.has_sse2());
|
| - CHECK(!cpu.has_ssse3() || cpu.has_sse3());
|
| - CHECK(!cpu.has_sse41() || cpu.has_sse3());
|
| - CHECK(!cpu.has_sse42() || cpu.has_sse41());
|
| + // Thread implementation.
|
| + virtual void Run() V8_OVERRIDE {
|
| + semaphore_.Wait();
|
| + if (task_) {
|
| + task_->Run();
|
| + delete task_;
|
| + }
|
| + }
|
|
|
| - // arm features
|
| - CHECK(!cpu.has_vfp3_d32() || cpu.has_vfp3());
|
| -}
|
| + private:
|
| + Semaphore semaphore_;
|
| + v8::Task* task_;
|
|
|
| + DISALLOW_COPY_AND_ASSIGN(TestThread);
|
| +};
|
|
|
| -TEST(NumberOfProcessorsOnline) {
|
| - CHECK_GT(CPU::NumberOfProcessorsOnline(), 0);
|
| -}
|
| +#endif // TEST_LIBPLATFORM_H_
|
|
|