Skip to content

Commit 20a1a51

Browse files
committed
Fix path reading
1 parent 5eaf97b commit 20a1a51

2 files changed

Lines changed: 10 additions & 8 deletions

File tree

src/IO/ADIOS/ADIOS2IOHandler.cpp

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1591,6 +1591,9 @@ namespace
15911591
};
15921592
#endif
15931593

1594+
#define OPENPMD_PREPARSE_EVERYTHING 1
1595+
1596+
#if !OPENPMD_PREPARSE_EVERYTHING
15941597
void warn_ignored_modifiable_attributes(adios2::IO &IO)
15951598
{
15961599
auto modifiable_flag = IO.InquireAttribute<detail::bool_representation>(
@@ -1612,10 +1615,9 @@ Use Access::READ_LINEAR to retrieve those values if needed.
16121615
print_warning("File uses modifiable attributes.");
16131616
}
16141617
}
1618+
#endif
16151619
} // namespace
16161620

1617-
#define OPENPMD_PREPARSE_EVERYTHING 1
1618-
16191621
void ADIOS2IOHandlerImpl::readAttributeAllsteps(
16201622
Writable *writable, Parameter<Operation::READ_ATT_ALLSTEPS> &param)
16211623
{
@@ -1777,7 +1779,8 @@ void ADIOS2IOHandlerImpl::listPaths(
17771779
std::vector attrs =
17781780
fileData.availableAttributesPrefixed(tablePrefix);
17791781
if (fileData.streamStatus ==
1780-
detail::ADIOS2File::StreamStatus::DuringStep)
1782+
detail::ADIOS2File::StreamStatus::DuringStep ||
1783+
fileData.stepSelection().has_value())
17811784
{
17821785
auto currentStep = fileData.currentStep();
17831786
auto &IO = fileData.m_IO;

test/SerialIOTest.cpp

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5971,13 +5971,12 @@ void variableBasedSeries(std::string const &file)
59715971

59725972
last_iteration_index = iteration.iterationIndex;
59735973

5974-
if (access == Access::READ_RANDOM_ACCESS)
5975-
{
5976-
continue;
5977-
}
5978-
59795974
// this loop ensures that only the recordcomponent ["E"]["i"] is
59805975
// present where i == iteration.iterationIndex
5976+
// Note that this works for ReadRandomAccess as well since constant
5977+
// components contain no datasets. The ADIOS2 backend is however not
5978+
// (yet) able to deal with array datasets that are present only in a
5979+
// subselection of steps.
59815980
for (uint64_t otherIteration = 0; otherIteration < 10;
59825981
++otherIteration)
59835982
{

0 commit comments

Comments
 (0)