Files
compute-runtime/unit_tests/mocks/mock_deferred_deleter.h
Mateusz Hoppe f0905554aa Move files to core
Change-Id: If83c08a0c32686fc15e8c73f44fd7e538bc8a58b
Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2020-01-07 16:53:35 +01:00

77 lines
1.3 KiB
C++

/*
* Copyright (C) 2017-2020 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
*/
#pragma once
#include "core/memory_manager/deferred_deleter.h"
namespace NEO {
class MockDeferredDeleter : public DeferredDeleter {
public:
MockDeferredDeleter();
~MockDeferredDeleter();
void deferDeletion(DeferrableDeletion *deletion) override;
void addClient() override;
void removeClient() override;
void drain(bool blocking) override;
bool areElementsReleased() override;
bool shouldStop() override;
void drain();
int getClientsNum();
int getElementsToRelease();
bool isWorking();
bool isThreadRunning();
bool isQueueEmpty();
void setElementsToRelease(int elementsNum);
void setDoWorkInBackgroundValue(bool value);
bool baseAreElementsReleased();
bool baseShouldStop();
Thread *getThreadHandle();
void runThread();
int drainCalled = 0;
int areElementsReleasedCalled = 0;
std::atomic<int> shouldStopCalled;
std::atomic<int> clearCalled;
int deferDeletionCalled = 0;
void forceStop();
void allowEarlyStopThread();
void expectDrainBlockingValue(bool value);
bool expectedDrainValue = false;
bool expectDrainCalled = false;
void clearQueue() override;
};
} // namespace NEO