| 735 | const int chainCaps[] = {2, 4, 4}; |
| 736 | |
| 737 | bool runOverrunTest() |
| 738 | { |
| 739 | std::cout << "\nRunning overrun test..." << std::endl; |
| 740 | |
| 741 | for (size_t i = 0; i < encoding_count; ++i) { |
| 742 | ACE_Message_Block* chain = getchain(sizeof(chainCaps)/sizeof(chainCaps[0]), chainCaps); |
| 743 | |
| 744 | // Overrun write |
| 745 | Serializer s1(chain, encodings[i]); |
| 746 | ACE_CDR::ULong ul = 1234; |
| 747 | if (!(s1 << ul)) { |
| 748 | std::cerr << "runOverrunTest: 1st insert ulong using " |
| 749 | << encodings[i].to_string() << " failed" << std::endl; |
| 750 | chain->release(); |
| 751 | return false; |
| 752 | } |
| 753 | ACE_CDR::Float flt = 3.14f; |
| 754 | if (!(s1 << flt)) { |
| 755 | std::cerr << "runOverrunTest: 1st insert float using " |
| 756 | << encodings[i].to_string() << " failed" << std::endl; |
| 757 | chain->release(); |
| 758 | return false; |
| 759 | } |
| 760 | ACE_CDR::LongLong ll = 987654321; |
| 761 | if (s1 << ll) { |
| 762 | std::cerr << "runOverrunTest: 1st insert long long using " |
| 763 | << encodings[i].to_string() |
| 764 | << " succeeded when it should've failed" << std::endl; |
| 765 | chain->release(); |
| 766 | return false; |
| 767 | } |
| 768 | chain->release(); |
| 769 | |
| 770 | chain = getchain(sizeof(chainCaps)/sizeof(chainCaps[0]), chainCaps); |
| 771 | Serializer s2(chain, encodings[i]); |
| 772 | if (!(s2 << ul)) { |
| 773 | std::cerr << "runOverrunTest: 2nd insert ulong using " |
| 774 | << encodings[i].to_string() << " failed" << std::endl; |
| 775 | chain->release(); |
| 776 | return false; |
| 777 | } |
| 778 | if (!(s2 << flt)) { |
| 779 | std::cerr << "runOverrunTest: 2nd insert float using " |
| 780 | << encodings[i].to_string() << " failed" << std::endl; |
| 781 | chain->release(); |
| 782 | return false; |
| 783 | } |
| 784 | ACE_CDR::UShort us = 12; |
| 785 | if (!(s2 << us)) { |
| 786 | std::cerr << "runOverrunTest: 2nd insert ushort using " |
| 787 | << encodings[i].to_string() << " failed" << std::endl; |
| 788 | chain->release(); |
| 789 | return false; |
| 790 | } |
| 791 | |
| 792 | // Overrun read |
| 793 | Serializer s3(chain, encodings[i]); |
| 794 | if (!(s3 >> ul)) { |