This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-io.git

commit 5d3322ba11a0541894ece9e7def5d45634eea1d2
Author: Gary D. Gregory <garydgreg...@gmail.com>
AuthorDate: Sun Mar 2 09:04:48 2025 -0500

    Better tests for FileChannels.contentEquals()
---
 .../commons/io/channels/FileChannelsTest.java      | 37 +++++++++++++++-------
 1 file changed, 25 insertions(+), 12 deletions(-)

diff --git a/src/test/java/org/apache/commons/io/channels/FileChannelsTest.java 
b/src/test/java/org/apache/commons/io/channels/FileChannelsTest.java
index a8aef2ef3..d8922194b 100644
--- a/src/test/java/org/apache/commons/io/channels/FileChannelsTest.java
+++ b/src/test/java/org/apache/commons/io/channels/FileChannelsTest.java
@@ -93,6 +93,19 @@ public void testContentEquals(final int bufferSize) throws 
IOException {
             try (FileChannel fc1 = FileChannel.open(bigFile1); FileChannel fc3 
= FileChannel.open(bigFile3)) {
                 assertFalse(FileChannels.contentEquals(fc1, fc3, bufferSize));
                 assertFalse(FileChannels.contentEquals(reset(fc3), reset(fc1), 
bufferSize));
+                // Test just the last byte
+                fc1.position(last);
+                fc3.position(last);
+                assertFalse(FileChannels.contentEquals(fc1, fc3, bufferSize));
+            }
+            // Make the LAST byte equal.
+            bytes3 = bytes1.clone();
+            Files.write(bigFile3, bytes3);
+            try (FileChannel fc1 = FileChannel.open(bigFile1); FileChannel fc3 
= FileChannel.open(bigFile3)) {
+                // Test just the last byte
+                fc1.position(last);
+                fc3.position(last);
+                assertTrue(FileChannels.contentEquals(fc1, fc3, bufferSize));
             }
             // Make a byte in the middle different
             bytes3 = bytes1.clone();
@@ -121,16 +134,16 @@ private void testContentEquals(final String content1, 
final String content2, fin
         FileUtils.writeStringToFile(file2, content2, US_ASCII);
         // File checksums are different
         assertNotEquals(FileUtils.checksumCRC32(file1), 
FileUtils.checksumCRC32(file2));
-        try (FileInputStream stream1 = new FileInputStream(file1);
-                FileInputStream stream2 = new FileInputStream(file2);
-                FileChannel channel1 = stream1.getChannel();
-                FileChannel channel2 = stream2.getChannel()) {
+        try (FileInputStream in1 = new FileInputStream(file1);
+                FileInputStream in2 = new FileInputStream(file2);
+                FileChannel channel1 = in1.getChannel();
+                FileChannel channel2 = in2.getChannel()) {
             assertFalse(FileChannels.contentEquals(channel1, channel2, 
bufferSize));
         }
-        try (FileInputStream stream1 = new FileInputStream(file1);
-                FileInputStream stream2 = new FileInputStream(file2);
-                FileChannel channel1 = stream1.getChannel();
-                FileChannel channel2 = stream2.getChannel()) {
+        try (FileInputStream in1 = new FileInputStream(file1);
+                FileInputStream in2 = new FileInputStream(file2);
+                FileChannel channel1 = in1.getChannel();
+                FileChannel channel2 = in2.getChannel()) {
             assertTrue(FileChannels.contentEquals(channel1, channel1, 
bufferSize));
             assertTrue(FileChannels.contentEquals(channel2, channel2, 
bufferSize));
         }
@@ -161,10 +174,10 @@ public void testContentEqualsEmpty(final int bufferSize) 
throws IOException {
         assertFalse(isEmpty(notEmpty));
         // File checksums are different
         assertNotEquals(FileUtils.checksumCRC32(empty), 
FileUtils.checksumCRC32(notEmpty));
-        try (FileInputStream streamEmpty = new FileInputStream(empty);
-                FileInputStream streamNotEmpty = new FileInputStream(notEmpty);
-                FileChannel channelEmpty = streamEmpty.getChannel();
-                FileChannel channelNotEmpty = streamNotEmpty.getChannel()) {
+        try (FileInputStream inEmpty = new FileInputStream(empty);
+                FileInputStream inNotEmpty = new FileInputStream(notEmpty);
+                FileChannel channelEmpty = inEmpty.getChannel();
+                FileChannel channelNotEmpty = inNotEmpty.getChannel()) {
             assertFalse(FileChannels.contentEquals(channelEmpty, 
channelNotEmpty, bufferSize));
             assertFalse(FileChannels.contentEquals(null, channelNotEmpty, 
bufferSize));
             assertFalse(FileChannels.contentEquals(channelNotEmpty, null, 
bufferSize));

Reply via email to