diff --git a/tensorflow/core/kernels/matching_files_op.cc b/tensorflow/core/kernels/matching_files_op.cc index 0ba718c88ec..515e58d518a 100644 --- a/tensorflow/core/kernels/matching_files_op.cc +++ b/tensorflow/core/kernels/matching_files_op.cc @@ -54,13 +54,15 @@ class MatchingFilesOp : public OpKernel { context, context->allocate_output("filenames", TensorShape({num_files}), &output_t)); auto output = output_t->vec(); - int index = 0; - for (int i = 0; i < num_patterns; ++i) { - for (int j = 0; j < all_fnames[i].size(); j++) { - output(index++) = all_fnames[i][j]; + if (output.size() > 0) { + int index = 0; + for (int i = 0; i < num_patterns; ++i) { + for (int j = 0; j < all_fnames[i].size(); j++) { + output(index++) = all_fnames[i][j]; + } } + std::sort(&output(0), &output(0) + num_files); } - std::sort(&output(0), &output(0) + num_files); } }; diff --git a/tensorflow/python/data/kernel_tests/list_files_test.py b/tensorflow/python/data/kernel_tests/list_files_test.py index 40b4b77116c..b57bfb7293b 100644 --- a/tensorflow/python/data/kernel_tests/list_files_test.py +++ b/tensorflow/python/data/kernel_tests/list_files_test.py @@ -113,7 +113,7 @@ class ListFilesTest(test_base.DatasetTestBase, parameterized.TestCase): # Each run should produce the same set of filenames, which may be # different from the order of `expected_filenames`. - self.assertItemsEqual(expected_filenames, all_actual_filenames[0]) + self.assertCountEqual(expected_filenames, all_actual_filenames[0]) # However, the different runs should produce filenames in the same order # as each other. self.assertEqual(all_actual_filenames[0], all_actual_filenames[1]) @@ -199,7 +199,7 @@ class ListFilesTest(test_base.DatasetTestBase, parameterized.TestCase): actual_filenames.append(compat.as_bytes(self.evaluate(next_element()))) with self.assertRaises(errors.OutOfRangeError): self.evaluate(next_element()) - self.assertItemsEqual(expected_filenames, actual_filenames) + self.assertCountEqual(expected_filenames, actual_filenames) self.assertEqual(actual_filenames[:len(filenames)], actual_filenames[len(filenames):]) @@ -234,6 +234,5 @@ class ListFilesTest(test_base.DatasetTestBase, parameterized.TestCase): assert_items_equal=True) - if __name__ == '__main__': test.main()