I see the problem now. So the call to TestTempDir() in SetUp() thrown an
exception because Comodo Defense+ denied the creation of the temporary
directory and then temp_directory_ hadn't been assigned any value but
instead left empty. After that the test framework ran TearDown()
automatically which called DeleteRecursively() with an empty
temp_directory_. As a result the function tried to delete everything under
"/"... I'll send a fix for this. Sorry about the trouble it caused...

On Wed, Nov 5, 2014 at 4:12 PM, Peter Wurstkopp <[email protected]>
wrote:

> Posting on this board is so frustrating... first time I got no information
> that my post was submitted and I have to wait, so I submitted it again and
> accidentally double posted and now it won't let me post a reply...
> "Post" button doesn't do anything, so I switch from Firefox to Chrome and
> instead get "You can't submit an empty message without an attachment."
> (roughly translated from german) and every word has a red squiggly line
> under it.
> Hope this works now...
>
> I just tried debugging it and the problem seems to be in file.cc
>>
> void File::DeleteRecursively(const string& name, void* dummy1, void*
>> dummy2) // Line 134
>>
>> With "name" being an empty string. Getting called from TearDown().
>>
>>   WIN32_FIND_DATA find_data; // Line 141
>>   HANDLE find_handle = FindFirstFile((name + "/*").c_str(), &find_data);
>> // Line 142
>>
>> After this, find_data.cFileName contains "AMD", and then on line 158
>> DeleteFile(path.c_str()) gets called with "/AMD" as argument.
>> C:\AMD is a folder which would then get deleted, but I stopped debugging
>> there because I didn't want to get more things deleted.
>>
>> Here is the call stack:
>>      tests.exe!google::protobuf::File::DeleteRecursively(const
>> std::basic_string<char,std::char_traits<char>,std::allocator<char> > &
>> name, void * dummy1, void * dummy2) Zeile 158    C++
>>      tests.exe!google::protobuf::File::DeleteRecursively(const
>> std::basic_string<char,std::char_traits<char>,std::allocator<char> > &
>> name, void * dummy1, void * dummy2) Zeile 155    C++
>>      tests.exe!google::protobuf::File::DeleteRecursively(const
>> std::basic_string<char,std::char_traits<char>,std::allocator<char> > &
>> name, void * dummy1, void * dummy2) Zeile 155    C++
>>      tests.exe!google::protobuf::File::DeleteRecursively(const
>> std::basic_string<char,std::char_traits<char>,std::allocator<char> > &
>> name, void * dummy1, void * dummy2) Zeile 155    C++
>>      tests.exe!google::protobuf::File::DeleteRecursively(const
>> std::basic_string<char,std::char_traits<char>,std::allocator<char> > &
>> name, void * dummy1, void * dummy2) Zeile 155    C++
>>      tests.exe!google::protobuf::compiler::`anonymous
>> namespace'::CommandLineInterfaceTest::TearDown() Zeile 255    C++
>>
>>  
>> tests.exe!testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test,void>(testing::Test
>> * object, void (void) * method, const char * location) Zeile 1981    C++
>>
>>  
>> tests.exe!testing::internal::HandleExceptionsInMethodIfSupported<testing::Test,void>(testing::Test
>> * object, void (void) * method, const char * location) Zeile 2032    C++
>>      tests.exe!testing::Test::Run() Zeile 2076    C++
>>      tests.exe!testing::TestInfo::Run() Zeile 2248    C++
>>      tests.exe!testing::TestCase::Run() Zeile 2352    C++
>>      tests.exe!testing::internal::UnitTestImpl::RunAllTests() Zeile 4178
>>    C++
>>
>>  
>> tests.exe!testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl,bool>(testing::internal::UnitTestImpl
>> * object, bool (void) * method, const char * location) Zeile 1981    C++
>>
>>  
>> tests.exe!testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl,bool>(testing::internal::UnitTestImpl
>> * object, bool (void) * method, const char * location) Zeile 2032    C++
>>      tests.exe!testing::UnitTest::Run() Zeile 3812    C++
>>      tests.exe!main(int argc, char * * argv) Zeile 38    C++
>>
>> In the console I get the following errors:
>> [libprotobuf FATAL
>> c:\users\peter\desktop\protobuf-2.6.0\protobuf-2.6.0\src\google\protobuf\testing\file.cc:105]
>> CHECK failed: file != NULL: fopen(s5g8./TEMP_DIR_FOR_PROTOBUF_TESTS, "wb"):
>> Permission denied
>> unknown file: error: C++ exception with description "CHECK failed: file
>> != NULL: fopen(s5g8./TEMP_DIR_FOR_PROTOBUF_TESTS, "wb"): Permission denied"
>> thrown in SetUp().
>>
>> So I guess it's because Comodo Defense+ denies access to some files or
>> something so instead it gets wrong directories/files and starts deleting
>> them.
>> I like the comment on line 144 ;) "Just delete it, whatever it is."
>>
>  --
> You received this message because you are subscribed to the Google Groups
> "Protocol Buffers" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/protobuf.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Protocol Buffers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/protobuf.
For more options, visit https://groups.google.com/d/optout.

Reply via email to