mirror of
https://github.com/boykopovar/AnyPS5.git
synced 2026-10-22 08:33:12 -05:00
45 lines
1.3 KiB
C++
45 lines
1.3 KiB
C++
#include "prx/libc/include/general/VabiMacros.hpp"
|
|
#include <cstdlib>
|
|
#include <stdexcept>
|
|
|
|
extern "C" {
|
|
int APS5_VABI sceNpEAAccessInitialize(void);
|
|
int APS5_VABI sceNpEAAccessTerminate(void);
|
|
int APS5_VABI sceNpHasEAAccessSubscription(int, bool*);
|
|
}
|
|
|
|
namespace {
|
|
|
|
void Require(bool value) { if (!value) std::abort(); }
|
|
|
|
template <typename TAction>
|
|
bool Throws(TAction action) {
|
|
try {
|
|
action();
|
|
} catch (const std::logic_error&) {
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
}
|
|
|
|
int main() {
|
|
bool subscribed = true;
|
|
Require(Throws([] { sceNpEAAccessTerminate(); }));
|
|
Require(Throws([&] { sceNpHasEAAccessSubscription(1, &subscribed); }));
|
|
Require(sceNpEAAccessInitialize() == 0);
|
|
Require(Throws([] { sceNpEAAccessInitialize(); }));
|
|
Require(Throws([] { sceNpHasEAAccessSubscription(1, nullptr); }));
|
|
Require(sceNpHasEAAccessSubscription(1, &subscribed) == 0);
|
|
Require(!subscribed);
|
|
subscribed = true;
|
|
Require(sceNpHasEAAccessSubscription(0, &subscribed) == 0);
|
|
Require(!subscribed);
|
|
Require(sceNpEAAccessTerminate() == 0);
|
|
Require(Throws([] { sceNpEAAccessTerminate(); }));
|
|
Require(Throws([&] { sceNpHasEAAccessSubscription(1, &subscribed); }));
|
|
Require(sceNpEAAccessInitialize() == 0);
|
|
Require(sceNpEAAccessTerminate() == 0);
|
|
}
|