예제 #1
0
GrpAdminDeleteIOSQCmd::GrpAdminDeleteIOSQCmd(size_t grpNum) :
    Group(grpNum, "GrpAdminDeleteIOSQCmd",
        "Admin cmd set delete IOSQ test cases")
{
    // For complete details about the APPEND_TEST_AT_?LEVEL() macros:
    // "https://github.com/nvmecompliance/tnvme/wiki/Test-Numbering" and
    // "https://github.com/nvmecompliance/tnvme/wiki/Test-Strategy
    switch (gCmdLine.rev) {
    case SPECREV_10b:
        APPEND_TEST_AT_XLEVEL(CreateResources_r10b, GrpAdminDeleteIOSQCmd)
        APPEND_TEST_AT_YLEVEL(UnsupportRsvdFields_r10b, GrpAdminDeleteIOSQCmd)
        APPEND_TEST_AT_XLEVEL(InvalidQID_r10b, GrpAdminDeleteIOSQCmd)
        break;
    case SPECREV_12:
    case SPECREV_11:
        APPEND_TEST_AT_XLEVEL(CreateResources_r10b, GrpAdminDeleteIOSQCmd)
        APPEND_TEST_AT_YLEVEL(UnsupportRsvdFields_r11b, GrpAdminDeleteIOSQCmd)
        APPEND_TEST_AT_XLEVEL(InvalidQID_r10b, GrpAdminDeleteIOSQCmd)
        break;

    default:
    case SPECREVTYPE_FENCE:
        throw FrmwkEx(HERE, "Object created with an unknown SpecRev=%d",
            gCmdLine.rev);
    }
}
예제 #2
0
GrpReservationsHostA::GrpReservationsHostA(size_t grpNum) :
		Group(grpNum, "GrpReservationsHostA", "Reservation Commands HostA")
{
    // For complete details about the APPEND_TEST_AT_?LEVEL() macros:
    // "https://github.com/nvmecompliance/tnvme/wiki/Test-Numbering" and
    // "https://github.com/nvmecompliance/tnvme/wiki/Test-Strategy
    switch (gCmdLine.rev) {
    case SPECREV_10b:
        break;
    case SPECREV_12:
    case SPECREV_121:
    case SPECREV_13:
    case SPECREV_11:
        APPEND_TEST_AT_XLEVEL(CreateResources_r11, GrpReservationsHostA)
        APPEND_TEST_AT_YLEVEL(RegisterReservation, GrpReservationsHostA)
        APPEND_TEST_AT_YLEVEL(ReplaceReservation, GrpReservationsHostA)
        APPEND_TEST_AT_YLEVEL(AcquireReservation, GrpReservationsHostA)
        APPEND_TEST_AT_YLEVEL(ReleaseReservation, GrpReservationsHostA)
        break;

    default:
    case SPECREVTYPE_FENCE:
        throw FrmwkEx(HERE, "Object created with an unknown SpecRev=%d",
            gCmdLine.rev);
    }
}
예제 #3
0
GrpAdminGetLogPgCmd::GrpAdminGetLogPgCmd(size_t grpNum) :
    Group(grpNum, "GrpAdminGetLogPgCmd",
        "Admin cmd set get log page test cases")
{
    // For complete details about the APPEND_TEST_AT_?LEVEL() macros:
    // "https://github.com/nvmecompliance/tnvme/wiki/Test-Numbering" and
    // "https://github.com/nvmecompliance/tnvme/wiki/Test-Strategy
    switch (gCmdLine.rev) {
    case SPECREV_10b:
        APPEND_TEST_AT_XLEVEL(CreateResources_r10b, GrpAdminGetLogPgCmd)
        APPEND_TEST_AT_YLEVEL(PRP1_r10b, GrpAdminGetLogPgCmd)
        APPEND_TEST_AT_YLEVEL(PRP1PRP2_r10b, GrpAdminGetLogPgCmd)
        APPEND_TEST_AT_YLEVEL(UnsupportRrvdFields_r10b, GrpAdminGetLogPgCmd)
        APPEND_TEST_AT_YLEVEL(NUMDIsAdhered_r10b, GrpAdminGetLogPgCmd)
        APPEND_TEST_AT_YLEVEL(InvalidLogPageNVMSet_r10b, GrpAdminGetLogPgCmd)
        APPEND_TEST_AT_YLEVEL(InvalidNamspc_r10b, GrpAdminGetLogPgCmd)
        APPEND_TEST_AT_YLEVEL(MandatoryErrInfo_r10b, GrpAdminGetLogPgCmd)
        APPEND_TEST_AT_YLEVEL(MandatorySMART_r10b, GrpAdminGetLogPgCmd)
        APPEND_TEST_AT_YLEVEL(MandatoryFW_r10b, GrpAdminGetLogPgCmd)
        break;

    default:
    case SPECREVTYPE_FENCE:
        throw FrmwkEx(HERE, "Object created with an unknown SpecRev=%d",
            gCmdLine.rev);
    }
}
예제 #4
0
GrpInterrupts::GrpInterrupts(size_t grpNum) :
    Group(grpNum, "GrpInterrupts", "MSI-single, MSI-multi, MSI-X test cases")
{
    // For complete details about the APPEND_TEST_AT_?LEVEL() macros:
    // "https://github.com/nvmecompliance/tnvme/wiki/Test-Numbering" and
    // "https://github.com/nvmecompliance/tnvme/wiki/Test-Strategy
    switch (gCmdLine.rev) {
    case SPECREV_10b:
        APPEND_TEST_AT_XLEVEL(CreateResources_r10b, GrpInterrupts)
        APPEND_TEST_AT_YLEVEL(InvalidMSIXIRQ_r10b, GrpInterrupts)
        APPEND_TEST_AT_YLEVEL(PartialReapMSIX_r10b, GrpInterrupts)
        APPEND_TEST_AT_YLEVEL(MaxIOQMSIX1To1_r10b, GrpInterrupts)
        APPEND_TEST_AT_YLEVEL(MaxIOQMSIXManyTo1_r10b, GrpInterrupts)
        break;

    default:
    case SPECREVTYPE_FENCE:
        throw FrmwkEx(HERE, "Object created with an unknown SpecRev=%d",
            gCmdLine.rev);
    }
}
예제 #5
0
GrpNVMDatasetMgmtCmd::GrpNVMDatasetMgmtCmd(size_t grpNum) :
    Group(grpNum, "GrpNVMDatasetMgmtCmd", "NVM cmd set data set mgmt tests")
{
    // For complete details about the APPEND_TEST_AT_?LEVEL() macros:
    // "https://github.com/nvmecompliance/tnvme/wiki/Test-Numbering" and
    // "https://github.com/nvmecompliance/tnvme/wiki/Test-Strategy
    switch (gCmdLine.rev) {
    case SPECREV_10b:
        APPEND_TEST_AT_XLEVEL(CreateResources_r10b, GrpNVMDatasetMgmtCmd)
        APPEND_TEST_AT_YLEVEL(InvalidNamspc_r10b, GrpNVMDatasetMgmtCmd)
        APPEND_TEST_AT_YLEVEL(UnsupportRsvdFields_r10b, GrpNVMDatasetMgmtCmd)
        APPEND_TEST_AT_YLEVEL(PRP1PRP2NR_r10b, GrpNVMDatasetMgmtCmd)
        APPEND_TEST_AT_YLEVEL(Attributes_r10b, GrpNVMDatasetMgmtCmd)
        APPEND_TEST_AT_YLEVEL(VerifyNUSE_r10b, GrpNVMDatasetMgmtCmd)
        break;

    default:
    case SPECREVTYPE_FENCE:
        throw FrmwkEx(HERE, "Object created with an unknown SpecRev=%d",
            gCmdLine.rev);
    }
}
예제 #6
0
GrpGeneralCmds::GrpGeneralCmds(size_t grpNum) :
    Group(grpNum, "GrpGeneralCmds", "General command tests.")
{
    // For complete details about the APPEND_TEST_AT_?LEVEL() macros:
    // "https://github.com/nvmecompliance/tnvme/wiki/Test-Numbering" and
    // "https://github.com/nvmecompliance/tnvme/wiki/Test-Strategy
    switch (gCmdLine.rev) {
    case SPECREV_11:
    case SPECREV_12:
    case SPECREV_10b:
        APPEND_TEST_AT_XLEVEL(CreateResources_r10b, GrpGeneralCmds)
        APPEND_TEST_AT_YLEVEL(IllegalNVMCmds_r10b, GrpGeneralCmds)
        APPEND_TEST_AT_YLEVEL(IllegalAdminCmds_r10b, GrpGeneralCmds)
        APPEND_TEST_AT_YLEVEL(CIDAcceptedASQ_r10b, GrpGeneralCmds)
        APPEND_TEST_AT_XLEVEL(CIDAcceptedIOSQ_r10b, GrpGeneralCmds)
        break;

    default:
    case SPECREVTYPE_FENCE:
        throw FrmwkEx(HERE, "Object created with an unknown SpecRev=%d",
            gCmdLine.rev);
    }
}
예제 #7
0
GrpQueues::GrpQueues(size_t grpNum) :
    Group(grpNum, "GrpQueues", "Validates general queue functionality")
{
    // For complete details about the APPEND_TEST_AT_?LEVEL() macros:
    // "https://github.com/nvmecompliance/tnvme/wiki/Test-Numbering" and
    // "https://github.com/nvmecompliance/tnvme/wiki/Test-Strategy
    switch (gCmdLine.rev) {
    case SPECREV_11:
    case SPECREV_12:
    case SPECREV_121:
    case SPECREV_13:
    case SPECREV_10b:
        APPEND_TEST_AT_XLEVEL(InitialStateAdmin_r10b, GrpQueues)
        APPEND_TEST_AT_XLEVEL(AdminQRollChkSame_r10b, GrpQueues)
        APPEND_TEST_AT_XLEVEL(AdminQRollChkDiff_r10b, GrpQueues)
        APPEND_TEST_AT_XLEVEL(AdminQFull_r10b, GrpQueues)
        APPEND_TEST_AT_XLEVEL(IllegalCreateOrder_r10b, GrpQueues)
        APPEND_TEST_AT_XLEVEL(CreateResources_r10b, GrpQueues)
        APPEND_TEST_AT_YLEVEL(IOQRollChkSame_r10b, GrpQueues)
        APPEND_TEST_AT_YLEVEL(IOQRollChkDiff_r10b, GrpQueues)
        APPEND_TEST_AT_YLEVEL(ManySQtoCQAssoc_r10b, GrpQueues)
        APPEND_TEST_AT_YLEVEL(IOQFull_r10b, GrpQueues)
        APPEND_TEST_AT_YLEVEL(ManyCmdSubmit_r10b, GrpQueues)
        APPEND_TEST_AT_YLEVEL(IllegalDeleteQs_r10b, GrpQueues)
        APPEND_TEST_AT_YLEVEL(MaxIOQ_r10b, GrpQueues)
        APPEND_TEST_AT_YLEVEL(SQCQSizeMismatch_r10b, GrpQueues)
        APPEND_TEST_AT_YLEVEL(QIDVariations_r10b, GrpQueues)
        APPEND_TEST_AT_YLEVEL(IllegalCreateQs_r10b, GrpQueues)

        break;

    default:
    case SPECREVTYPE_FENCE:
        throw FrmwkEx(HERE, "Object created with an unknown SpecRev=%d",
            gCmdLine.rev);
    }
}
예제 #8
0
GrpNVMReadCmd::GrpNVMReadCmd(size_t grpNum) :
    Group(grpNum, "GrpNVMReadCmd", "NVM cmd set read cmd tests")
{
    // For complete details about the APPEND_TEST_AT_?LEVEL() macros:
    // "https://github.com/nvmecompliance/tnvme/wiki/Test-Numbering" and
    // "https://github.com/nvmecompliance/tnvme/wiki/Test-Strategy
    switch (gCmdLine.rev) {
    case SPECREV_10b:
        APPEND_TEST_AT_XLEVEL(CreateResources_r10b, GrpNVMReadCmd)
        APPEND_TEST_AT_YLEVEL(LBAOutOfRangeBare_r10b, GrpNVMReadCmd)
        APPEND_TEST_AT_YLEVEL(InvalidNamspc_r10b, GrpNVMReadCmd)
        APPEND_TEST_AT_YLEVEL(UnsupportRsvdFields_r10b, GrpNVMReadCmd)
        APPEND_TEST_AT_YLEVEL(ProtInfoIgnoreBare_r10b, GrpNVMReadCmd)
        APPEND_TEST_AT_YLEVEL(IgnoreMetaPtrBare_r10b, GrpNVMReadCmd)
        APPEND_TEST_AT_YLEVEL(FUA_r10b, GrpNVMReadCmd)
        APPEND_TEST_AT_YLEVEL(LimitedRetry_r10b, GrpNVMReadCmd)
        APPEND_TEST_AT_YLEVEL(IgnoreMetaPtrMeta_r10b, GrpNVMReadCmd)
        APPEND_TEST_AT_XLEVEL(LBAOutOfRangeMeta_r10b, GrpNVMReadCmd)
        APPEND_TEST_AT_XLEVEL(ProtInfoIgnoreMeta_r10b, GrpNVMReadCmd)
        break;
    case SPECREV_11:
        APPEND_TEST_AT_XLEVEL(CreateResources_r10b, GrpNVMReadCmd)
        APPEND_TEST_AT_YLEVEL(LBAOutOfRangeBare_r10b, GrpNVMReadCmd)
        APPEND_TEST_AT_YLEVEL(InvalidNamspc_r10b, GrpNVMReadCmd)
        APPEND_TEST_AT_YLEVEL(UnsupportRsvdFields_r11b, GrpNVMReadCmd)
        APPEND_TEST_AT_YLEVEL(ProtInfoIgnoreBare_r10b, GrpNVMReadCmd)
        APPEND_TEST_AT_YLEVEL(IgnoreMetaPtrBare_r10b, GrpNVMReadCmd)
        APPEND_TEST_AT_YLEVEL(FUA_r10b, GrpNVMReadCmd)
        APPEND_TEST_AT_YLEVEL(LimitedRetry_r10b, GrpNVMReadCmd)
        APPEND_TEST_AT_YLEVEL(IgnoreMetaPtrMeta_r10b, GrpNVMReadCmd)
        APPEND_TEST_AT_XLEVEL(LBAOutOfRangeMeta_r10b, GrpNVMReadCmd)
        APPEND_TEST_AT_XLEVEL(ProtInfoIgnoreMeta_r10b, GrpNVMReadCmd)
        break;
    case SPECREV_12:
        APPEND_TEST_AT_XLEVEL(CreateResources_r10b, GrpNVMReadCmd)
        APPEND_TEST_AT_YLEVEL(LBAOutOfRangeBare_r12, GrpNVMReadCmd)
        APPEND_TEST_AT_YLEVEL(InvalidNamspc_r10b, GrpNVMReadCmd)
        APPEND_TEST_AT_YLEVEL(UnsupportRsvdFields_r11b, GrpNVMReadCmd)
        APPEND_TEST_AT_YLEVEL(ProtInfoIgnoreBare_r12, GrpNVMReadCmd)
        APPEND_TEST_AT_YLEVEL(IgnoreMetaPtrBare_r12, GrpNVMReadCmd)
        APPEND_TEST_AT_YLEVEL(FUA_r10b, GrpNVMReadCmd)
        APPEND_TEST_AT_YLEVEL(LimitedRetry_r10b, GrpNVMReadCmd)
        APPEND_TEST_AT_YLEVEL(IgnoreMetaPtrMeta_r12, GrpNVMReadCmd)
        APPEND_TEST_AT_XLEVEL(LBAOutOfRangeMeta_r12, GrpNVMReadCmd)
        APPEND_TEST_AT_XLEVEL(ProtInfoIgnoreMeta_r12, GrpNVMReadCmd)
        break;

    default:
    case SPECREVTYPE_FENCE:
        throw FrmwkEx(HERE, "Object created with an unknown SpecRev=%d",
            gCmdLine.rev);
    }
}