Commit 55980e02 authored by Giuseppe Carboni's avatar Giuseppe Carboni Committed by aorlati
Browse files

Fix #185, addressed segfault error. (#186)

sounds good.
parent 4d3f4bfb
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -52,7 +52,7 @@ CError::CError(const CError& rSrc)
	m_sFile=rSrc.m_sFile;
	m_sRoutine=rSrc.m_sRoutine;
	m_dwLine=rSrc.m_dwLine;
	for(int i=0;i<m_wDataPointer;i++) {
	for(WORD i=0;i<rSrc.m_wDataPointer;i++) {
		m_pData[i].Name=rSrc.m_pData[i].Name;
		m_pData[i].Value=rSrc.m_pData[i].Value;
	}
@@ -83,7 +83,7 @@ void CError::operator=(const CError& rSrc)
	m_sFile=rSrc.m_sFile;
	m_sRoutine=rSrc.m_sRoutine;
	m_dwLine=rSrc.m_dwLine;
	for(int i=0;i<m_wDataPointer;i++) {
	for(WORD i=0;i<rSrc.m_wDataPointer;i++) {
		m_pData[i].Name=rSrc.m_pData[i].Name;
		m_pData[i].Value=rSrc.m_pData[i].Value;
	}
+39 −0
Original line number Diff line number Diff line
#include "Error.h"

#include <stdlib.h>

namespace IRALibraryTest {

class IRALibrary_CError : public ::testing::Test {
public:
	::testing::AssertionResult copyConstructor_segfault() {
		testSegFault();	
		return ::testing::AssertionSuccess();
	}

private:
	IRA::CError m_error;
	
	IRA::CError testSegFault() {
		// This SHOULD NOT generate a Segmentation fault after fix #185.
        m_error.setError(IRA::CError::SerialType,IRA::CError::SrlPortConfig);
		return m_error;
	}
	
protected:

	static void TearDownTestCase()
	{
	}

	static void SetUpTestCase()
	{
	}

	virtual void SetUp() {
	}
	virtual void TearDown() {
	}
};

}
+5 −0
Original line number Diff line number Diff line
@@ -4,6 +4,7 @@
#include "FastQueue_test.i"
#include "Socket_test.i"

#include "CError_regression.i"

using namespace IRALibraryTest;

@@ -62,3 +63,7 @@ TEST_F(IRALibrary_FastQueue,FastQueue_checkConsistency){
TEST_F(IRALibrary_Socket, sendWithoutConnection){
	EXPECT_TRUE(sendWithoutConnection());
}

TEST_F(IRALibrary_CError, copyConstructor_segfault){
	EXPECT_TRUE(copyConstructor_segfault());
}