mirror of
https://github.com/qilingframework/qiling.git
synced 2026-10-12 02:21:40 +00:00
96 lines
1.5 KiB
C++
96 lines
1.5 KiB
C++
#include <iostream>
|
|
#include <cstdlib>
|
|
|
|
/*
|
|
* Test simple try..catch.
|
|
*/
|
|
void test1()
|
|
{
|
|
std::cout << "y";
|
|
|
|
try {
|
|
std::cout << "y";
|
|
throw (unsigned int)0x12345678;
|
|
std::cout << "n";
|
|
}
|
|
catch(unsigned int n) {
|
|
n;
|
|
std::cout << "y";
|
|
}
|
|
|
|
std::cout << "y";
|
|
}
|
|
|
|
/*
|
|
* Test simple try..catch with throw.
|
|
*/
|
|
void test2()
|
|
{
|
|
std::cout << "y";
|
|
|
|
try {
|
|
std::cout << "y";
|
|
throw (unsigned int)0x12345679;
|
|
std::cout << "n";
|
|
}
|
|
catch (unsigned int n) {
|
|
n;
|
|
if (n == 0x12345679) {
|
|
std::cout << "y";
|
|
}
|
|
else {
|
|
std::cout << "n";
|
|
}
|
|
}
|
|
|
|
std::cout << "y";
|
|
}
|
|
|
|
/*
|
|
* Test nested try..catch with throw.
|
|
*/
|
|
void test3()
|
|
{
|
|
std::cout << "y";
|
|
|
|
try {
|
|
std::cout << "y";
|
|
|
|
try {
|
|
std::cout << "y";
|
|
throw (unsigned int)0x1234567A;
|
|
std::cout << "n";
|
|
}
|
|
catch (unsigned int n) {
|
|
n;
|
|
if (n == 0x1234567A) {
|
|
std::cout << "y";
|
|
}
|
|
else {
|
|
std::cout << "n";
|
|
}
|
|
}
|
|
|
|
std::cout << "y";
|
|
}
|
|
catch (unsigned int n) {
|
|
n;
|
|
std::cout << "n";
|
|
}
|
|
|
|
std::cout << "y";
|
|
}
|
|
|
|
int main()
|
|
{
|
|
/*
|
|
* For this program, all subtests successful will print:
|
|
* - 14 'y'
|
|
* - 0 'n'
|
|
*/
|
|
|
|
test1();
|
|
test2();
|
|
test3();
|
|
}
|