From 6888055b97f01944b97fb3699aec4a9307d23153 Mon Sep 17 00:00:00 2001 From: coryan Date: Thu, 15 Feb 2001 02:40:00 +0000 Subject: ChangeLogTag:Wed Feb 14 18:38:11 2001 Carlos O'Ryan --- TAO/ChangeLogs/ChangeLog-02a | 12 ++ TAO/tao/Queued_Message.cpp | 5 +- .../Queued_Message_Test/Queued_Message_Test.cpp | 31 +++- .../Queued_Message_Test/Queued_Message_Test.dsp | 195 +++++++++++++++++++++ .../Queued_Message_Test/Queued_Message_Test.dsw | 29 +++ 5 files changed, 262 insertions(+), 10 deletions(-) create mode 100644 TAO/tests/Queued_Message_Test/Queued_Message_Test.dsp create mode 100644 TAO/tests/Queued_Message_Test/Queued_Message_Test.dsw diff --git a/TAO/ChangeLogs/ChangeLog-02a b/TAO/ChangeLogs/ChangeLog-02a index 274ffdbcf5f..ec23df92bf1 100644 --- a/TAO/ChangeLogs/ChangeLog-02a +++ b/TAO/ChangeLogs/ChangeLog-02a @@ -1,3 +1,15 @@ +Wed Feb 14 18:38:11 2001 Carlos O'Ryan + + * tao/Queued_Message.cpp: + Fixed queue manipulation logic + + * tests/Queued_Message_Test/Queued_Message_Test.cpp: + The test was miscounting remove operations from the queue. + + * tests/Queued_Message_Test/Queued_Message_Test.dsw: + * tests/Queued_Message_Test/Queued_Message_Test.dsp: + Add MSVC project files. + Wed Feb 14 10:02:44 2001 Carlos O'Ryan * tao/Queued_Message.h: diff --git a/TAO/tao/Queued_Message.cpp b/TAO/tao/Queued_Message.cpp index 21b7737d93a..e8b7788f8ea 100644 --- a/TAO/tao/Queued_Message.cpp +++ b/TAO/tao/Queued_Message.cpp @@ -110,11 +110,8 @@ TAO_Queued_Message::push_back (TAO_Queued_Message *&head, return; } + tail->next_ = this; this->prev_ = tail; this->next_ = 0; - if (tail->prev_ != 0) - { - tail->prev_->next_ = this; - } tail = this; } diff --git a/TAO/tests/Queued_Message_Test/Queued_Message_Test.cpp b/TAO/tests/Queued_Message_Test/Queued_Message_Test.cpp index 190e2e94cd8..d21f93720ca 100644 --- a/TAO/tests/Queued_Message_Test/Queued_Message_Test.cpp +++ b/TAO/tests/Queued_Message_Test/Queued_Message_Test.cpp @@ -48,9 +48,6 @@ static void del_message (TAO_Queued_Message *&head, TAO_Queued_Message *&tail, ACE_RANDR_TYPE &seed) { - if (head == 0) - return; - // ACE_DEBUG ((LM_DEBUG, "Removing message\n")); TAO_Queued_Message *current = head; current->remove_from_list (head, tail); @@ -98,15 +95,23 @@ main (int, ACE_TCHAR *[]) TAO_Queued_Message *head = 0; TAO_Queued_Message *tail = 0; + int add_count = 0; + int del_count = 0; + const int iterations = 100; int i; for (i = 0; i != iterations; ++i) { add_message (head, tail, seed); + add_count++; if (ACE_OS::rand_r(seed) % 100 > 90) { // every so often remove a message also. - del_message (head, tail, seed); + if (head != 0) + { + del_message (head, tail, seed); + del_count++; + } } } @@ -115,15 +120,20 @@ main (int, ACE_TCHAR *[]) { if (ACE_OS::rand_r(seed) % 100 > 90) { - add_message (head, tail, seed); + add_message (head, tail, seed); add_count++; + } + if (head != 0) + { + del_message (head, tail, seed); + del_count++; } - del_message (head, tail, seed); } // Go through a phase where all messages are removed. while (head != 0) { del_message (head, tail, seed); + del_count++; } if (tail != 0) @@ -133,5 +143,14 @@ main (int, ACE_TCHAR *[]) 1); } + if (add_count != del_count) + { + ACE_ERROR_RETURN ((LM_ERROR, + "ERROR: mismatched (%d != %d) add and del counts\n", + add_count, del_count), + 1); + } + + return 0; } diff --git a/TAO/tests/Queued_Message_Test/Queued_Message_Test.dsp b/TAO/tests/Queued_Message_Test/Queued_Message_Test.dsp new file mode 100644 index 00000000000..544bb0454ee --- /dev/null +++ b/TAO/tests/Queued_Message_Test/Queued_Message_Test.dsp @@ -0,0 +1,195 @@ +# Microsoft Developer Studio Project File - Name="Queued_Message_Test" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Console Application" 0x0103 + +CFG=Queued_Message_Test - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "Queued_Message_Test.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "Queued_Message_Test.mak" CFG="Queued_Message_Test - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "Queued_Message_Test - Win32 Release" (based on "Win32 (x86) Console Application") +!MESSAGE "Queued_Message_Test - Win32 Debug" (based on "Win32 (x86) Console Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "Queued_Message_Test - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\.." /I "..\..\.." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /FD /c +# SUBTRACT CPP /YX +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 +# ADD LINK32 ace.lib tao.lib /nologo /subsystem:console /machine:I386 /libpath:"..\..\tao" /libpath:"..\..\..\ace" + +!ELSEIF "$(CFG)" == "Queued_Message_Test - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "" +# PROP Intermediate_Dir "Debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\.." /I "..\..\.." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FD /c +# SUBTRACT CPP /YX +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept +# ADD LINK32 aced.lib TAOd.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\tao" /libpath:"..\..\..\ace" + +!ENDIF + +# Begin Target + +# Name "Queued_Message_Test - Win32 Release" +# Name "Queued_Message_Test - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=.\Queued_Message_Test.cpp +# End Source File +# Begin Source File + +SOURCE=.\testC.cpp +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter ".h" +# Begin Source File + +SOURCE=.\testC.h +# End Source File +# End Group +# Begin Group "IDL Files" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=.\test.idl + +!IF "$(CFG)" == "Queued_Message_Test - Win32 Release" + +USERDEP__TEST_="..\..\..\bin\Release\tao_idl.exe" +# Begin Custom Build - Invoking TAO IDL compiler +InputPath=.\test.idl +InputName=test + +BuildCmds= \ + ..\..\..\bin\Release\tao_idl -Ge 1 $(InputName).idl + +"$(InputName)C.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + $(BuildCmds) + +"$(InputName)C.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + $(BuildCmds) + +"$(InputName)C.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + $(BuildCmds) + +"$(InputName)S.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + $(BuildCmds) + +"$(InputName)S.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + $(BuildCmds) + +"$(InputName)S.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + $(BuildCmds) + +"$(InputName)S_T.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + $(BuildCmds) + +"$(InputName)S_T.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + $(BuildCmds) + +"$(InputName)S_T.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + $(BuildCmds) +# End Custom Build + +!ELSEIF "$(CFG)" == "Queued_Message_Test - Win32 Debug" + +USERDEP__TEST_="..\..\..\bin\tao_idl.exe" +# Begin Custom Build - Invoking TAO IDL Compiler +InputPath=.\test.idl +InputName=test + +BuildCmds= \ + ..\..\..\bin\tao_idl -Ge 1 $(InputName).idl + +"$(InputName)C.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + $(BuildCmds) + +"$(InputName)C.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + $(BuildCmds) + +"$(InputName)C.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + $(BuildCmds) + +"$(InputName)S.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + $(BuildCmds) + +"$(InputName)S.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + $(BuildCmds) + +"$(InputName)S.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + $(BuildCmds) + +"$(InputName)S_T.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + $(BuildCmds) + +"$(InputName)S_T.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + $(BuildCmds) + +"$(InputName)S_T.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + $(BuildCmds) +# End Custom Build + +!ENDIF + +# End Source File +# End Group +# End Target +# End Project diff --git a/TAO/tests/Queued_Message_Test/Queued_Message_Test.dsw b/TAO/tests/Queued_Message_Test/Queued_Message_Test.dsw new file mode 100644 index 00000000000..03521d0402c --- /dev/null +++ b/TAO/tests/Queued_Message_Test/Queued_Message_Test.dsw @@ -0,0 +1,29 @@ +Microsoft Developer Studio Workspace File, Format Version 6.00 +# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! + +############################################################################### + +Project: "Queued_Message_Test"=.\Queued_Message_Test.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + -- cgit v1.2.1