Files
AnyPS5/core/libs/tests/GuestUsbStorageDialog.cpp
T

80 lines
3.1 KiB
C++

#include "prx/libc/include/general/VabiMacros.hpp"
#include <cstdint>
#include <cstdlib>
#include <cstring>
extern "C" {
int APS5_VABI sceUsbStorageDialogInitialize(void);
int APS5_VABI sceUsbStorageDialogOpen(const void* param);
int APS5_VABI sceUsbStorageDialogUpdateStatus(void);
int APS5_VABI sceUsbStorageDialogGetStatus(void);
int APS5_VABI sceUsbStorageDialogGetResult(void* result);
int APS5_VABI sceUsbStorageDialogClose(void);
int APS5_VABI sceUsbStorageDialogTerminate(void);
}
namespace {
void Require(bool value) { if (!value) std::abort(); }
constexpr int kStatusNone = 0;
constexpr int kStatusInitialized = 1;
constexpr int kStatusRunning = 2;
constexpr int kStatusFinished = 3;
constexpr int kErrNotInitialized = static_cast<int>(0x80B80003);
constexpr int kErrAlreadyInitialized = static_cast<int>(0x80B80004);
constexpr int kErrNotFinished = static_cast<int>(0x80B80005);
constexpr int kErrBusy = static_cast<int>(0x80B80007);
constexpr int kErrNotRunning = static_cast<int>(0x80B8000B);
constexpr int kErrArgNull = static_cast<int>(0x80B8000D);
constexpr int kResultUserCanceled = 1;
}
int main() {
std::int64_t param = 0;
std::int32_t result = 0x5a5a5a5a;
Require(sceUsbStorageDialogTerminate() == kErrNotInitialized);
Require(sceUsbStorageDialogOpen(&param) == kErrNotInitialized);
Require(sceUsbStorageDialogClose() == kErrNotInitialized);
Require(sceUsbStorageDialogGetResult(&result) == kErrNotInitialized);
Require(sceUsbStorageDialogGetStatus() == kStatusNone);
Require(sceUsbStorageDialogUpdateStatus() == kStatusNone);
Require(sceUsbStorageDialogInitialize() == 0);
Require(sceUsbStorageDialogInitialize() == kErrAlreadyInitialized);
Require(sceUsbStorageDialogGetStatus() == kStatusInitialized);
Require(sceUsbStorageDialogOpen(nullptr) == kErrArgNull);
Require(sceUsbStorageDialogGetResult(&result) == kErrNotFinished);
Require(sceUsbStorageDialogOpen(&param) == 0);
Require(sceUsbStorageDialogOpen(&param) == kErrBusy);
Require(sceUsbStorageDialogGetStatus() == kStatusRunning);
Require(sceUsbStorageDialogGetResult(&result) == kErrNotFinished);
Require(sceUsbStorageDialogUpdateStatus() == kStatusFinished);
Require(sceUsbStorageDialogGetStatus() == kStatusFinished);
Require(sceUsbStorageDialogGetResult(nullptr) == kErrArgNull);
Require(sceUsbStorageDialogGetResult(&result) == 0);
Require(result == kResultUserCanceled);
Require(sceUsbStorageDialogClose() == kErrNotRunning);
Require(sceUsbStorageDialogTerminate() == 0);
Require(sceUsbStorageDialogTerminate() == kErrNotInitialized);
Require(sceUsbStorageDialogGetStatus() == kStatusNone);
Require(sceUsbStorageDialogInitialize() == 0);
Require(sceUsbStorageDialogOpen(&param) == 0);
Require(sceUsbStorageDialogGetStatus() == kStatusRunning);
Require(sceUsbStorageDialogClose() == 0);
Require(sceUsbStorageDialogGetStatus() == kStatusFinished);
result = 0;
Require(sceUsbStorageDialogGetResult(&result) == 0);
Require(result == kResultUserCanceled);
Require(sceUsbStorageDialogTerminate() == 0);
return 0;
}