mirror of
https://github.com/autc04/Retro68.git
synced 2024-11-05 20:05:15 +00:00
add test program for global constructors/destructors
This commit is contained in:
parent
831cbc3aa9
commit
eb5d22bac5
@ -29,6 +29,17 @@ add_custom_command(
|
||||
DEPENDS ExceptionTest)
|
||||
add_custom_target(ExceptionTestAPPL ALL DEPENDS ExceptionTest.bin)
|
||||
|
||||
add_executable(InitTest
|
||||
InitTest.cc
|
||||
)
|
||||
|
||||
target_link_libraries(InitTest RetroConsole retrocrt)
|
||||
add_custom_command(
|
||||
OUTPUT InitTest.bin
|
||||
COMMAND ${MAKE_APPL} -b -c InitTest -o InitTest
|
||||
DEPENDS InitTest)
|
||||
add_custom_target(InitTestAPPL ALL DEPENDS InitTest.bin)
|
||||
|
||||
|
||||
enable_language(ASM)
|
||||
add_executable(AsmTest
|
||||
|
63
TestApps/InitTest.cc
Normal file
63
TestApps/InitTest.cc
Normal file
@ -0,0 +1,63 @@
|
||||
/*
|
||||
Copyright 2012 Wolfgang Thaller.
|
||||
|
||||
This file is part of Retro68.
|
||||
|
||||
Retro68 is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
Retro68 is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with Retro68. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <Events.h>
|
||||
|
||||
class Foo
|
||||
{
|
||||
public:
|
||||
Foo()
|
||||
{
|
||||
printf("Foo::Foo() was called.\n");
|
||||
}
|
||||
~Foo()
|
||||
{
|
||||
printf("Foo::~Foo() was called. (delaying 1 sec)\n");
|
||||
|
||||
long start = TickCount();
|
||||
while(TickCount() < start + 60)
|
||||
;
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
Foo foo;
|
||||
|
||||
__attribute__((constructor))
|
||||
void con()
|
||||
{
|
||||
printf("con() called.\n");
|
||||
}
|
||||
__attribute__((destructor))
|
||||
void des()
|
||||
{
|
||||
printf("des() called. (delaying 1 sec)\n");
|
||||
long start = TickCount();
|
||||
while(TickCount() < start + 60)
|
||||
;
|
||||
}
|
||||
|
||||
int main(int argc, char** argv)
|
||||
{
|
||||
printf("Entering main. Press Enter.\n");
|
||||
getchar();
|
||||
return 0;
|
||||
}
|
Loading…
Reference in New Issue
Block a user