Commit aaef4597 authored by Godoy, William F's avatar Godoy, William F
Browse files

#1060 Local Values read as Global Arrays

To do:
test for set selection when reading local values as 1D global arrays
parent b7040631
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -445,10 +445,10 @@ void BP3Deserializer::GetValueFromMetadata(core::Variable<T> &variable,
            if (blocksStart + blocksCount > positions.size())
            {
                throw std::invalid_argument(
                    "ERROR: selection Start " + std::to_string(blocksStart) +
                    " and Count " + std::to_string(blocksCount) +
                    " (requested) is out of bounds of (available) Shape " +
                    positions.size() + " for relative step " +
                    "ERROR: selection Start {" + std::to_string(blocksStart) +
                    "} and Count {" + std::to_string(blocksCount) +
                    "} (requested) is out of bounds of (available) Shape {" +
                    std::to_string(positions.size()) + "} for relative step " +
                    std::to_string(s) +
                    " , when reading 1D global array variable " +
                    variable.m_Name + ", in call to Get");
+5 −3
Original line number Diff line number Diff line
@@ -963,11 +963,12 @@ TEST_F(BPWriteReadLocalVariables, ADIOS2BPWriteReadLocal2D4x2)
            EXPECT_EQ(stepsGlobalValueStringDataString,
                      std::to_string(currentStep));

            // Local value
            // Local values are read as 1D Global Arrays
            EXPECT_TRUE(var_RanksLocalValue);
            EXPECT_EQ(var_RanksLocalValue.ShapeID(),
                      adios2::ShapeID::LocalValue);
                      adios2::ShapeID::GlobalArray);
            EXPECT_EQ(var_RanksLocalValue.Steps(), NSteps);
            EXPECT_EQ(var_RanksLocalValue.Shape().size(), 1);
            EXPECT_EQ(var_RanksLocalValue.Shape()[0], mpiSize);
            EXPECT_EQ(var_RanksLocalValue.Min(), 0);
            EXPECT_EQ(var_RanksLocalValue.Max(), mpiSize - 1);
@@ -981,8 +982,9 @@ TEST_F(BPWriteReadLocalVariables, ADIOS2BPWriteReadLocal2D4x2)

            EXPECT_TRUE(var_RanksLocalValueString);
            EXPECT_EQ(var_RanksLocalValueString.ShapeID(),
                      adios2::ShapeID::LocalValue);
                      adios2::ShapeID::GlobalArray);
            EXPECT_EQ(var_RanksLocalValue.Steps(), NSteps);
            EXPECT_EQ(var_RanksLocalValue.Shape().size(), 1);
            EXPECT_EQ(var_RanksLocalValue.Shape()[0], mpiSize);
            std::vector<std::string> rankLocalValueDataString;
            bpReader.Get(var_RanksLocalValueString, rankLocalValueDataString,