2 * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 * @file test_failed.cpp
18 * @author Lukasz Wojciechowski <l.wojciechow@partner.samsung.com>
20 * @brief This file is the implementation file of TestFailed class
29 #include <dpl/test/test_failed.h>
33 namespace // anonymous
35 std::string BaseName(const std::string &aPath)
37 std::unique_ptr<char, decltype(free)*> path(strdup(aPath.c_str()), free);
39 throw std::bad_alloc();
41 return basename(path.get());
43 } // namespace anonymous
45 //! \brief Failed test message creator
47 //! \param[in] aTest string for tested expression
48 //! \param[in] aFile source file name
49 //! \param[in] aLine source file line
50 //! \param[in] aMessage error message
51 TestFailed::TestFailed(const char* aTest,
54 const std::string &aMessage)
56 std::ostringstream assertMsg;
57 assertMsg << "[" << BaseName(aFile) << ":" << aLine
58 << "] Assertion failed ("
59 << aTest << ") " << aMessage;
60 m_message = assertMsg.str();