LCOV - code coverage report
Current view: top level - test/cctest - test-unbound-queue.cc (source / functions) Hit Total Coverage
Test: app.info Lines: 23 23 100.0 %
Date: 2019-01-20 Functions: 4 4 100.0 %

          Line data    Source code
       1             : // Copyright 2010 the V8 project authors. All rights reserved.
       2             : // Redistribution and use in source and binary forms, with or without
       3             : // modification, are permitted provided that the following conditions are
       4             : // met:
       5             : //
       6             : //     * Redistributions of source code must retain the above copyright
       7             : //       notice, this list of conditions and the following disclaimer.
       8             : //     * Redistributions in binary form must reproduce the above
       9             : //       copyright notice, this list of conditions and the following
      10             : //       disclaimer in the documentation and/or other materials provided
      11             : //       with the distribution.
      12             : //     * Neither the name of Google Inc. nor the names of its
      13             : //       contributors may be used to endorse or promote products derived
      14             : //       from this software without specific prior written permission.
      15             : //
      16             : // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
      17             : // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
      18             : // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
      19             : // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
      20             : // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
      21             : // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
      22             : // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
      23             : // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
      24             : // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
      25             : // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
      26             : // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
      27             : //
      28             : // Tests of the unbound queue.
      29             : 
      30             : #include "src/v8.h"
      31             : #include "test/cctest/cctest.h"
      32             : 
      33             : #include "src/profiler/unbound-queue-inl.h"
      34             : 
      35             : using i::UnboundQueue;
      36             : 
      37             : 
      38       28342 : TEST(SingleRecord) {
      39             :   typedef int Record;
      40             :   UnboundQueue<Record> cq;
      41           5 :   CHECK(cq.IsEmpty());
      42          10 :   cq.Enqueue(1);
      43           5 :   CHECK(!cq.IsEmpty());
      44             :   Record rec = 0;
      45             :   cq.Dequeue(&rec);
      46           5 :   CHECK_EQ(1, rec);
      47           5 :   CHECK(cq.IsEmpty());
      48           5 : }
      49             : 
      50             : 
      51       28342 : TEST(MultipleRecords) {
      52             :   typedef int Record;
      53             :   UnboundQueue<Record> cq;
      54           5 :   CHECK(cq.IsEmpty());
      55          10 :   cq.Enqueue(1);
      56           5 :   CHECK(!cq.IsEmpty());
      57          25 :   for (int i = 2; i <= 5; ++i) {
      58             :     cq.Enqueue(i);
      59          20 :     CHECK(!cq.IsEmpty());
      60             :   }
      61             :   Record rec = 0;
      62          25 :   for (int i = 1; i <= 4; ++i) {
      63          20 :     CHECK(!cq.IsEmpty());
      64             :     cq.Dequeue(&rec);
      65          20 :     CHECK_EQ(i, rec);
      66             :   }
      67          40 :   for (int i = 6; i <= 12; ++i) {
      68             :     cq.Enqueue(i);
      69          35 :     CHECK(!cq.IsEmpty());
      70             :   }
      71          45 :   for (int i = 5; i <= 12; ++i) {
      72          40 :     CHECK(!cq.IsEmpty());
      73             :     cq.Dequeue(&rec);
      74          40 :     CHECK_EQ(i, rec);
      75             :   }
      76           5 :   CHECK(cq.IsEmpty());
      77       85016 : }

Generated by: LCOV version 1.10