File indexing completed on 2026-04-09 07:49:20
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022 #include <cassert>
0023 #include <iomanip>
0024 #include "SProc.hh"
0025 #include "OPTICKS_LOG.hh"
0026
0027
0028 void test_leaking(int argc, char** argv)
0029 {
0030 typedef unsigned long long ULL ;
0031
0032
0033 ULL MB = 1 << 20 ;
0034
0035 ULL MB128 = 1 << 20 << 7 ;
0036
0037 int nleak = argc > 1 ? atoi(argv[1]) : 25 ;
0038
0039 char** leaks = new char*[nleak] ;
0040
0041 float vmb0 = SProc::VirtualMemoryUsageMB();
0042
0043 LOG(info)
0044 << " nleak " << nleak
0045 << " vmb0 " << vmb0
0046 ;
0047
0048 ULL increment = MB128 ;
0049
0050 ULL total = 0ull ;
0051
0052 for(int i=0 ; i < nleak ; i++)
0053 {
0054 leaks[i] = new char[increment] ;
0055
0056 total += increment ;
0057
0058 float dvmb = SProc::VirtualMemoryUsageMB() - vmb0 ;
0059
0060 float x_dvmb = float(total/MB) ;
0061
0062 assert(leaks[i]);
0063
0064 LOG(info)
0065 << std::setw(10) << i
0066 << " vm "
0067 << std::setw(10) << dvmb
0068 << " x_vm "
0069 << std::setw(10) << x_dvmb
0070 << " vm/x_vm "
0071 << std::setw(10) << std::fixed << std::setprecision(4) << dvmb/x_dvmb
0072
0073 ;
0074
0075
0076 }
0077 }
0078
0079
0080
0081 void test_ExecutablePath(int argc, char** argv)
0082 {
0083 const char* p = SProc::ExecutablePath();
0084 std::cout << "argv[0]: " << argv[0] << std::endl ;
0085 std::cout << "SProc::ExecutablePath(): " << p << std::endl ;
0086
0087 const char* n = SProc::ExecutableName();
0088 std::cout << "SProc::ExecutableName(): " << n << std::endl ;
0089
0090 const char* l4 = strdup( n + strlen(n) - 4 );
0091 std::cout << " l4 [" << l4 << "]" << std::endl ;
0092 assert( strlen(n) > 4 && strncmp( n + strlen(n) - 4 , "Test", 4) == 0 );
0093 }
0094
0095
0096
0097 int main(int argc, char** argv)
0098 {
0099 OPTICKS_LOG(argc, argv);
0100
0101 test_leaking(argc, argv);
0102
0103
0104 return 0 ;
0105 }
0106
0107
0108
0109
0110
0111
0112
0113
0114
0115
0116
0117
0118
0119
0120
0121
0122
0123
0124
0125
0126
0127
0128
0129
0130
0131
0132