Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Delta Between Two Patch Sets: installer/src/installer-lib/test/process_test.cpp

Issue 5663180676136960: Make sure IE and Engine are actually being closed by custom action (Closed)
Left Patch Set: Created June 20, 2014, 10:33 p.m.
Right Patch Set: Use handle class for HMODULE. Add back a test for immersive case. Created June 26, 2014, 1:24 p.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
Left: Side by side diff | Download
Right: Side by side diff | Download
« no previous file with change/comment | « installer/src/installer-lib/process.cpp ('k') | src/plugin/AdblockPlusClient.cpp » ('j') | no next file with change/comment »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
LEFTRIGHT
1 #include <gtest/gtest.h> 1 #include <gtest/gtest.h>
2 #include "../process.h" 2 #include "../process.h"
3 #include <functional> 3 #include <functional>
4 4
5 // Turn off warnings for string copies 5 // Turn off warnings for string copies
6 #pragma warning( disable : 4996 ) 6 #pragma warning( disable : 4996 )
7 7
8 //------------------------------------------------------- 8 //-------------------------------------------------------
9 // Comparison objects 9 // Comparison objects
10 //------------------------------------------------------- 10 //-------------------------------------------------------
11 11
12 const wchar_t * multiple_module_names[] = { L"kernel32.dll", L"non-matching-name " } ;
13 const wchar_t * non_existent_module_names[] = { L"non-matching-name" } ;
14
15 const wchar_t exact_exe_name[] = L"installer-ca-tests.exe" ; 12 const wchar_t exact_exe_name[] = L"installer-ca-tests.exe" ;
16 const std::wstring exact_exe_string( exact_exe_name ) ; 13 const std::wstring exact_exe_string( exact_exe_name ) ;
17 const wstring_ci exact_exe_string_ci( exact_exe_name ) ; 14 const wstring_ci exact_exe_string_ci( exact_exe_name ) ;
18 15
19 const wchar_t mixedcase_exe_name[] = L"Installer-CA-Tests.exe" ; 16 const wchar_t mixedcase_exe_name[] = L"Installer-CA-Tests.exe" ;
20 const wstring_ci mixedcase_exe_string_ci( mixedcase_exe_name ) ; 17 const wstring_ci mixedcase_exe_string_ci( mixedcase_exe_name ) ;
21 18
22 const wchar_t unknown_name[] = L"non-matching-name" ; 19 const wchar_t unknown_name[] = L"non-matching-name" ;
23 const wchar_t * multiple_exe_names[] = { mixedcase_exe_name, unknown_name } ; 20 const wchar_t * multiple_exe_names[] = { mixedcase_exe_name, unknown_name } ;
24 21
(...skipping 13 matching lines...) Expand all
38 * Compare to our own process name, case-insensitive, no length limit 35 * Compare to our own process name, case-insensitive, no length limit
39 */ 36 */
40 struct our_process_by_name_CI 37 struct our_process_by_name_CI
41 : std::unary_function< PROCESSENTRY32W, bool > 38 : std::unary_function< PROCESSENTRY32W, bool >
42 { 39 {
43 bool operator()( const PROCESSENTRY32W & process ) 40 bool operator()( const PROCESSENTRY32W & process )
44 { 41 {
45 return wstring_ci( process.szExeFile ) == mixedcase_exe_string_ci ; 42 return wstring_ci( process.szExeFile ) == mixedcase_exe_string_ci ;
46 } ; 43 } ;
47 } ; 44 } ;
48
49
50 struct our_process_by_name_subclassed
Eric 2014/06/25 15:08:51 It appears that this struct is dead code. I know I
51 : public process_by_any_exe_not_immersive
52 {
53 our_process_by_name_subclassed()
54 : process_by_any_exe_not_immersive( file_name_set( multiple_exe_names ))
55 {}
56 } ;
57
58 45
59 //------------------------------------------------------- 46 //-------------------------------------------------------
60 //------------------------------------------------------- 47 //-------------------------------------------------------
61 /** 48 /**
62 * Filter by process name. Comparison is case-insensitive. 49 * Filter by process name. Comparison is case-insensitive.
63 */ 50 */
64 class process_by_any_file_name_CI 51 class process_by_any_file_name_CI
65 : public std::unary_function< PROCESSENTRY32W, bool > 52 : public std::unary_function< PROCESSENTRY32W, bool >
66 { 53 {
67 const file_name_set & names ; 54 const file_name_set & names ;
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
103 return p ; 90 return p ;
104 } 91 }
105 92
106 PROCESSENTRY32 process_empty = process_with_name( L"" ) ; 93 PROCESSENTRY32 process_empty = process_with_name( L"" ) ;
107 PROCESSENTRY32 process_exact = process_with_name( exact_exe_name ) ; 94 PROCESSENTRY32 process_exact = process_with_name( exact_exe_name ) ;
108 PROCESSENTRY32 process_mixedcase = process_with_name( mixedcase_exe_name ) ; 95 PROCESSENTRY32 process_mixedcase = process_with_name( mixedcase_exe_name ) ;
109 PROCESSENTRY32 process_explorer = process_with_name( L"explorer.exe" ) ; 96 PROCESSENTRY32 process_explorer = process_with_name( L"explorer.exe" ) ;
110 PROCESSENTRY32 process_absent = process_with_name( L"no_such_name" ) ; 97 PROCESSENTRY32 process_absent = process_with_name( L"no_such_name" ) ;
111 98
112 file_name_set multiple_name_set( multiple_exe_names ) ; 99 file_name_set multiple_name_set( multiple_exe_names ) ;
113 file_name_set multiple_name_set_modules( multiple_module_names ) ;
114 file_name_set non_existent_name_set_modules( non_existent_module_names ) ;
115 process_by_any_file_name_CI find_in_set( multiple_name_set ) ; 100 process_by_any_file_name_CI find_in_set( multiple_name_set ) ;
101 process_by_any_exe_not_immersive find_in_set_not_immersive( multiple_name_set ) ;
102
116 103
117 TEST( file_name_set, validate_setup ) 104 TEST( file_name_set, validate_setup )
118 { 105 {
119 ASSERT_EQ( 2u, multiple_name_set.size() ) ; 106 ASSERT_EQ( 2u, multiple_name_set.size() ) ;
120 ASSERT_TRUE( multiple_name_set.find( exact_exe_string_ci ) != multiple_name_se t.end() ) ; 107 ASSERT_TRUE( multiple_name_set.find( exact_exe_string_ci ) != multiple_name_se t.end() ) ;
121 ASSERT_TRUE( multiple_name_set.find( mixedcase_exe_string_ci ) != multiple_nam e_set.end() ) ; 108 ASSERT_TRUE( multiple_name_set.find( mixedcase_exe_string_ci ) != multiple_nam e_set.end() ) ;
122 ASSERT_TRUE( multiple_name_set.find( L"" ) == multiple_name_set.end() ) ; 109 ASSERT_TRUE( multiple_name_set.find( L"" ) == multiple_name_set.end() ) ;
123 ASSERT_TRUE( multiple_name_set.find( L"not-in-list" ) == multiple_name_set.end () ) ; 110 ASSERT_TRUE( multiple_name_set.find( L"not-in-list" ) == multiple_name_set.end () ) ;
124 } 111 }
125 112
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after
287 ASSERT_GE( s.size(), 1u ); 274 ASSERT_GE( s.size(), 1u );
288 } 275 }
289 276
290 TEST( pid_set, find_our_process_in_set ) 277 TEST( pid_set, find_our_process_in_set )
291 { 278 {
292 std::set< DWORD > s ; 279 std::set< DWORD > s ;
293 initialize_process_set( s, find_in_set, copy_PID() ) ; 280 initialize_process_set( s, find_in_set, copy_PID() ) ;
294 size_t size( s.size() ) ; 281 size_t size( s.size() ) ;
295 EXPECT_EQ( size, 1u ); 282 EXPECT_EQ( size, 1u );
296 ASSERT_GE( size, 1u ); 283 ASSERT_GE( size, 1u );
284 }
285
286 TEST( pid_set, find_our_process_in_set_not_immersive )
287 {
288 std::set< DWORD > s ;
289 initialize_process_set( s, find_in_set_not_immersive, copy_PID() ) ;
290 size_t size( s.size() ) ;
291 EXPECT_EQ( size, 1u );
292 ASSERT_GE( size, 1u );
297 } 293 }
LEFTRIGHT

Powered by Google App Engine
This is Rietveld