Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Test Mv] sequence #52023

Closed
wants to merge 16 commits into from
Closed

[Test Mv] sequence #52023

wants to merge 16 commits into from

Conversation

Zheng-Bicheng
Copy link
Contributor

PR types

Others

PR changes

Others

Describe

移动单测目录

@paddle-bot
Copy link

paddle-bot bot commented Mar 23, 2023

你的PR提交成功,感谢你对开源项目的贡献!
请关注后续CI自动化测试结果,详情请参考Paddle-CI手册
Your PR has been submitted. Thanks for your contribution!
Please wait for the result of CI firstly. See Paddle CI Manual for details.

@tianshuo78520a
Copy link
Contributor

失败的单测,可以同步进行迁移。

@Zheng-Bicheng
Copy link
Contributor Author

关联Issues

@Zheng-Bicheng
Copy link
Contributor Author

Zheng-Bicheng commented Mar 26, 2023

@tianshuo78520a 大佬,这个pr失败的原因是因为有三个文件需要同步迁移到test/legacy_test目录下,但是这三个文件又是使用py_test_modules来进行测试的。我对比了py_test_modules py_test发现细节位置还是不一致的。

function(py_test_modules TARGET_NAME)
  if(WITH_TESTING)
    set(options SERIAL)
    set(oneValueArgs "")
    set(multiValueArgs MODULES DEPS ENVS)
    cmake_parse_arguments(py_test_modules "${options}" "${oneValueArgs}"
                          "${multiValueArgs}" ${ARGN})

    if(WITH_COVERAGE AND NOT (WITH_INCREMENTAL_COVERAGE
                              AND "$ENV{PADDLE_GIT_DIFF_PY_FILE}" STREQUAL ""))
      if(WITH_ASCEND_CL)
        add_test(
          NAME ${TARGET_NAME}
          COMMAND
            ${CMAKE_COMMAND} -E env
            PYTHONPATH=${PADDLE_BINARY_DIR}/python:$ENV{PYTHONPATH}
            ${py_test_modules_ENVS}
            COVERAGE_FILE=${PADDLE_BINARY_DIR}/python-coverage.data
            ${PYTHON_EXECUTABLE} -m coverage run --branch -p
            ${PADDLE_SOURCE_DIR}/tools/test_runner.py ${py_test_modules_MODULES}
          WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
      else()
        add_test(
          NAME ${TARGET_NAME}
          COMMAND
            ${CMAKE_COMMAND} -E env PYTHONPATH=${PADDLE_BINARY_DIR}/python
            ${py_test_modules_ENVS}
            COVERAGE_FILE=${PADDLE_BINARY_DIR}/python-coverage.data
            ${PYTHON_EXECUTABLE} -m coverage run --branch -p
            ${PADDLE_SOURCE_DIR}/tools/test_runner.py ${py_test_modules_MODULES}
          WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
      endif()
    else()
      if(WITH_ASCEND_CL)
        add_test(
          NAME ${TARGET_NAME}
          COMMAND
            ${CMAKE_COMMAND} -E env
            PYTHONPATH=${PADDLE_BINARY_DIR}/python:$ENV{PYTHONPATH}
            ${py_test_modules_ENVS} ${PYTHON_EXECUTABLE}
            ${PADDLE_SOURCE_DIR}/tools/test_runner.py ${py_test_modules_MODULES}
          WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
      else()
        add_test(
          NAME ${TARGET_NAME}
          COMMAND
            ${CMAKE_COMMAND} -E env PYTHONPATH=${PADDLE_BINARY_DIR}/python
            ${py_test_modules_ENVS} ${PYTHON_EXECUTABLE}
            ${PADDLE_SOURCE_DIR}/tools/test_runner.py ${py_test_modules_MODULES}
          WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
      endif()
    endif()

    if(py_test_modules_SERIAL)
      set_property(TEST ${TARGET_NAME} PROPERTY RUN_SERIAL 1)
    endif()
    if(WIN32)
      set_tests_properties(${TARGET_NAME} PROPERTIES TIMEOUT 150)
    endif()
  endif()
endfunction()
function(py_test TARGET_NAME)
  if(WITH_TESTING)
    set(options "")
    set(oneValueArgs "")
    set(multiValueArgs SRCS DEPS ARGS ENVS)
    cmake_parse_arguments(py_test "${options}" "${oneValueArgs}"
                          "${multiValueArgs}" ${ARGN})

    if(WITH_COVERAGE AND NOT (WITH_INCREMENTAL_COVERAGE
                              AND "$ENV{PADDLE_GIT_DIFF_PY_FILE}" STREQUAL ""))
      add_test(
        NAME ${TARGET_NAME}
        COMMAND
          ${CMAKE_COMMAND} -E env FLAGS_init_allocated_mem=true
          FLAGS_cudnn_deterministic=true FLAGS_cpu_deterministic=true
          PYTHONPATH=${PADDLE_BINARY_DIR}/python ${py_test_ENVS}
          COVERAGE_FILE=${PADDLE_BINARY_DIR}/python-coverage.data
          ${PYTHON_EXECUTABLE} -m coverage run --branch -p ${py_test_SRCS}
          ${py_test_ARGS}
        WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
    else()
      add_test(
        NAME ${TARGET_NAME}
        COMMAND
          ${CMAKE_COMMAND} -E env FLAGS_init_allocated_mem=true
          FLAGS_cudnn_deterministic=true FLAGS_cpu_deterministic=true
          ${py_test_ENVS} ${PYTHON_EXECUTABLE} -u ${py_test_SRCS}
          ${py_test_ARGS}
        WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
    endif()

    if(WIN32)
      set_tests_properties(${TARGET_NAME} PROPERTIES TIMEOUT 150)
    endif()
    if(APPLE)
      set_tests_properties(${TARGET_NAME} PROPERTIES TIMEOUT 20)
    endif()

  endif()
endfunction()

@Zheng-Bicheng
Copy link
Contributor Author

Zheng-Bicheng commented Mar 26, 2023

能直接用py_test_modules等效代替py_test吗?我没找到这方面的文档

@tianshuo78520a
Copy link
Contributor

tianshuo78520a commented Mar 27, 2023

能直接用py_test_modules等效代替py_test吗?我没找到这方面的文档

我感觉不太能,两个函数不一样。之前单测用的哪个还继续用就好,如果有能力可能可以看下怎么合并。
目前看PR-CI-Py3失败原因是因为目录迁移导致test_fusion_seqconv_eltadd_relu_op.py单测from sequence.test_sequence_conv import seqconv找不到,可以改下看看

@Zheng-Bicheng
Copy link
Contributor Author

我感觉不太能,两个函数不一样。之前单测用的哪个还继续用就好,如果有能力可能可以看下怎么合并。 目前看PR-CI-Py3失败原因是因为目录迁移导致test_fusion_seqconv_eltadd_relu_op.py单测from sequence.test_sequence_conv import seqconv找不到,可以改下看看

这个报错我看到了,文件python/paddle/fluid/tests/unittests/test_fusion_seqconv_eltadd_relu_op.py按照要求最好是能够放在test/legacy_test目录下。目前test/legacy_test下用的测试函数是py_test(${src} SRCS ${src}.py)但是python/paddle/fluid/tests/unittests/test_fusion_seqconv_eltadd_relu_op.py需要使用py_test_modules(${TEST_OP} MODULES ${TEST_OP})来测试,这就很矛盾。

@tianshuo78520a
Copy link
Contributor

test/legacy_test

可以用list_remove方法,把这个单测移出,然后单独设置py_test_modules去执行

@Zheng-Bicheng
Copy link
Contributor Author

可以用list_remove方法,把这个单测移出,然后单独设置py_test_modules去执行

这个方法我考虑过,但是不太现实。因为python/paddle/fluid/tests/unittests下的test_*文件最后都要移动到test/legacy_test,这么做工作量是不是太大了?

@luotao1
Copy link
Contributor

luotao1 commented Mar 28, 2023

目前有多少个单测失败呢?只 list_remove test_fusion_seqconv_eltadd_relu_op.py单测够了么?

@Zheng-Bicheng
Copy link
Contributor Author

目前有多少个单测失败呢?只 list_remove test_fusion_seqconv_eltadd_relu_op.py单测够了么?

如果只是这个PR的话确实应该只需要remove test_fusion_seqconv_eltadd_relu_op单测就行,我的意思是全局来看,最后一个一个remove是不合适的

@Zheng-Bicheng
Copy link
Contributor Author

@luotao1 @tianshuo78520a 我有个想法,把所有用py_test的单测名字改为py_test_xxx,用py_test_modules改为py_test_modules_xxx您看可以吗

@luotao1
Copy link
Contributor

luotao1 commented Mar 28, 2023

如果只是这个PR的话确实应该只需要remove test_fusion_seqconv_eltadd_relu_op单测就行,我的意思是全局来看,最后一个一个remove是不合适的

我觉得先就这个PR remove一下, @zhiqiu 看呢?

@paddle-bot
Copy link

paddle-bot bot commented Apr 4, 2023

很抱歉,经过我们的反复讨论,你的PR暂未达到合入标准,请阅读飞桨原生算子开发规范,你可以重新提交新的PR,我们先将此PR关闭,感谢你的贡献。
Sorry to inform you that through our discussion, your PR fails to meet the merging standard (Reference: Paddle Custom Operator Design Doc). You can also submit an new one. Thank you.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
contributor External developers
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants