Initial Commit
This commit is contained in:
		
						commit
						c2e7548296
					
				
					 238 changed files with 65475 additions and 0 deletions
				
			
		
							
								
								
									
										68
									
								
								absl/strings/internal/resize_uninitialized_test.cc
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										68
									
								
								absl/strings/internal/resize_uninitialized_test.cc
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,68 @@ | |||
| // Copyright 2017 The Abseil Authors.
 | ||||
| //
 | ||||
| // Licensed under the Apache License, Version 2.0 (the "License");
 | ||||
| // you may not use this file except in compliance with the License.
 | ||||
| // You may obtain a copy of the License at
 | ||||
| //
 | ||||
| //      http://www.apache.org/licenses/LICENSE-2.0
 | ||||
| //
 | ||||
| // Unless required by applicable law or agreed to in writing, software
 | ||||
| // distributed under the License is distributed on an "AS IS" BASIS,
 | ||||
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | ||||
| // See the License for the specific language governing permissions and
 | ||||
| // limitations under the License.
 | ||||
| 
 | ||||
| #include "absl/strings/internal/resize_uninitialized.h" | ||||
| 
 | ||||
| #include "gtest/gtest.h" | ||||
| 
 | ||||
| namespace { | ||||
| 
 | ||||
| int resize_call_count = 0; | ||||
| 
 | ||||
| struct resizable_string { | ||||
|   void resize(size_t) { resize_call_count += 1; } | ||||
| }; | ||||
| 
 | ||||
| int resize_uninitialized_call_count = 0; | ||||
| 
 | ||||
| struct resize_uninitializable_string { | ||||
|   void resize(size_t) { resize_call_count += 1; } | ||||
|   void resize_uninitialized(size_t) { resize_uninitialized_call_count += 1; } | ||||
| }; | ||||
| 
 | ||||
| TEST(ResizeUninit, WithAndWithout) { | ||||
|   resize_call_count = 0; | ||||
|   resize_uninitialized_call_count = 0; | ||||
|   { | ||||
|     resizable_string rs; | ||||
| 
 | ||||
|     EXPECT_EQ(resize_call_count, 0); | ||||
|     EXPECT_EQ(resize_uninitialized_call_count, 0); | ||||
|     EXPECT_FALSE( | ||||
|         absl::strings_internal::STLStringSupportsNontrashingResize(&rs)); | ||||
|     EXPECT_EQ(resize_call_count, 0); | ||||
|     EXPECT_EQ(resize_uninitialized_call_count, 0); | ||||
|     absl::strings_internal::STLStringResizeUninitialized(&rs, 237); | ||||
|     EXPECT_EQ(resize_call_count, 1); | ||||
|     EXPECT_EQ(resize_uninitialized_call_count, 0); | ||||
|   } | ||||
| 
 | ||||
|   resize_call_count = 0; | ||||
|   resize_uninitialized_call_count = 0; | ||||
|   { | ||||
|     resize_uninitializable_string rus; | ||||
| 
 | ||||
|     EXPECT_EQ(resize_call_count, 0); | ||||
|     EXPECT_EQ(resize_uninitialized_call_count, 0); | ||||
|     EXPECT_TRUE( | ||||
|         absl::strings_internal::STLStringSupportsNontrashingResize(&rus)); | ||||
|     EXPECT_EQ(resize_call_count, 0); | ||||
|     EXPECT_EQ(resize_uninitialized_call_count, 0); | ||||
|     absl::strings_internal::STLStringResizeUninitialized(&rus, 237); | ||||
|     EXPECT_EQ(resize_call_count, 0); | ||||
|     EXPECT_EQ(resize_uninitialized_call_count, 1); | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| }  // namespace
 | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue