diff options
author | Jose <jose@zeroc.com> | 2009-12-04 06:51:23 +0100 |
---|---|---|
committer | Jose <jose@zeroc.com> | 2009-12-04 06:51:23 +0100 |
commit | 0ad40835182795b5f9bedeea10aeb6f07c666e7d (patch) | |
tree | 5dff55b02aefb5854a972eb2cef128d1537d5c47 /cpp/test/IceUtil/fileLock/ClientFail.cpp | |
parent | Bug 4408 - plugin does not work with x64 only installation (diff) | |
download | ice-0ad40835182795b5f9bedeea10aeb6f07c666e7d.tar.bz2 ice-0ad40835182795b5f9bedeea10aeb6f07c666e7d.tar.xz ice-0ad40835182795b5f9bedeea10aeb6f07c666e7d.zip |
4089 - IceGrid database corruption.
Diffstat (limited to 'cpp/test/IceUtil/fileLock/ClientFail.cpp')
-rw-r--r-- | cpp/test/IceUtil/fileLock/ClientFail.cpp | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/cpp/test/IceUtil/fileLock/ClientFail.cpp b/cpp/test/IceUtil/fileLock/ClientFail.cpp new file mode 100644 index 00000000000..6af48475f31 --- /dev/null +++ b/cpp/test/IceUtil/fileLock/ClientFail.cpp @@ -0,0 +1,57 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2009 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +#include <IceUtil/FileUtil.h> +#include <IceUtil/Exception.h> +#include <TestCommon.h> + +using namespace IceUtil; +using namespace std; + +int +main(int argc, char** argv) +{ + IceUtilInternal::FileLockPtr lock; + try + { + lock = new IceUtilInternal::FileLock("file.lock"); + test(false); + } + catch(const IceUtil::FileLockException&) + { + cout << "File lock not acquired." << endl; +// +// Try to read the pid of the lock owner from +// the lock file. +// +// In windows we don't write pid to lock files. +// +#ifndef _WIN32 + IceUtilInternal::ifstream is(string("file.lock")); + if(!is.good()) + { + test(false); + } + string pid; + is >> pid; + test(pid.size() != 0); + cout << "Lock owned by: " << pid << endl; +#endif + } + catch(const exception& ex) + { + cerr << "exception:\n" << ex.what() << endl; + test(false); + } + catch(...) + { + test(false); + } + return EXIT_SUCCESS; +} |