Skip to content

Regression between v1.2.2 and release-2.0.0rc1: caput type on pv.DISP generates a warning [setter error] put returned 'Invalid element count requested' #84

@vnadot

Description

@vnadot

The following wetest script generates a warning [setter error] put returned 'Invalid element count requested' in release-2.0.0rc1 whereas in v1.2.2 it was not the case.

version: {major: 1, minor: 2, bugfix: 2} # don't forget to change version

config:
  name: "test"
  on_failure: continue

tests:
  # enable put
  - name: "enable PV put"
    commands:
    - name:       "enable PV put (DISP EPICS field)"
      setter:     "SL-SCL-CM1:RF-RFFI-1:GenDriverScanSet.DISP"
      set_value:  0

    - name:       "enable PV put (DISP EPICS field)"
      setter:     "SL-SCL-CM1:RF-RFFI-1:GenDriverScanSet.DISP"
      set_value:  "0"

in v1.2.2: no warning

$ WeTest/ ((v2.0.0rc1))
$ git tag
v1.0.0
v1.2.2
v2.0.0rc1
$ WeTest/ ((v2.0.0rc1))
$ git checkout v1.0.0
Previous HEAD position was e5ab8fb Merge pull request #73 from epics-extensions/release-2.0.0rc1
HEAD is now at 8b627d8 closes #47 non-zero return code with --version
$ WeTest/ ((v1.2.2))
$ virtualenv --python=/usr/bin/python2.7 venv
Running virtualenv with interpreter /usr/bin/python2.7
New python executable in /.../venv/bin/python2.7
Also creating executable in /.../venv/bin/python
Installing setuptools, pip, wheel...done.
$ WeTest/ ((v1.2.2))
$ source ./venv/bin/activate 
$ WeTest/ ((v1.2.2))
$ pip install .
...
Successfully installed Pillow-6.2.2 PyYAML-5.4.1 colorlog-4.8.0 docopt-0.6.2 numpy-1.16.0 pyepics-3.4.3 pykwalify-1.7.0 python-dateutil-2.9.0.post0 reportlab-3.5.55 six-1.16.0 wetest-1.2.2
You are using pip version 9.0.1, however version 24.0 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
$ wetest bug.yaml
File incompatible with reader of installed WeTest.
File format version is: 2.0.0, but wetest version is: 1.2.2
$ WeTest/ ((v1.2.2))
$ wetest bug.yaml
Validation of YAML scenario file: /home/vnadot/.../bug.yaml
Loaded 2 tests from `WeTest Suite`:
	- functional (ordered)  `test`
PV changed to connected: SL-SCL-CM1:RF-RFFI-1:GenDriverScanSet.DISP
-----------------------
Ready to start testing, use GUI play button.
Applying selection may take some time.

Running    test-0-0-0    enable PV put: enable PV put (DISP EPICS field)
Success of test-0-0-0    (in 1.050s) 

Running    test-0-0-1    enable PV put: enable PV put (DISP EPICS field)
Success of test-0-0-1    (in 1.002s) 
----------------------------------------------------------------------
Ran 2 tests in 2.054s

OK
Done running tests.
-----------------------
Ready to start testing, use GUI play button.
Done generating report: /.../wetest-results.pdf
GUI closed.
Aborting execution.
Exiting WeTest.

in release-2.0.0rc1: warning because of 'set_value: "0"'

It took me some time to understand the warning. I would say that generally the WeTest messages are not user friendly. I will create a dedicated issue for that (#85).

$ WeTest/dist/wetest-2.0.0rc1-x86_64.AppImage bug.yaml
Validation of YAML scenario file: /.../bug.yaml
Loaded 2 tests from `WeTest Suite`:
	- functional (ordered)  `test`
PV changed to connected: SL-SCL-CM1:RF-RFFI-1:GenDriverScanSet.DISP
Warning: Undefined Behavior!
         Detected use of epicsThread from child process after fork()
-----------------------
Ready to start testing, use GUI play button.
Applying selection may take some time.

Running    test-0-0-0    enable PV put: enable PV put (DISP EPICS field)
Success of test-0-0-0    (in 1.047s) 

Running    test-0-0-1    enable PV put: enable PV put (DISP EPICS field)
Error   of test-0-0-1    (in 0.003s) [setter error]  put returned 'Invalid element count requested'
======================================================================
ERROR: test-0-0-1 (wetest.testing.generator.SelectableTestCase)
enable PV put: enable PV put (DISP EPICS field)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/nix/store/pnkbr2dx35h9rz9zn3fgvcgvfr73smvs-python3.9-wetest-2.0.0rc1/lib/python3.9/site-packages/wetest/testing/generator.py", line 438, in test
    setter.put(set_value)
  File "/iee/extensions/lib/python/pyepics-3.2.4-py2.7.egg/epics/pv.py", line 336, in put
    return ca.put(self.chid, value,
  File "/iee/extensions/lib/python/pyepics-3.2.4-py2.7.egg/epics/ca.py", line 403, in wrapper
    return fcn(*args, **kwds)
  File "/iee/extensions/lib/python/pyepics-3.2.4-py2.7.egg/epics/ca.py", line 1329, in put
    PySEVCHK('put', ret)
  File "/iee/extensions/lib/python/pyepics-3.2.4-py2.7.egg/epics/ca.py", line 432, in PySEVCHK
    raise CASeverityException(func_name, message(status))
epics.ca.CASeverityException:  put returned 'Invalid element count requested'

----------------------------------------------------------------------
Ran 2 tests in 1.155s

FAILED (errors=1)
Done running tests.
Warning: Undefined Behavior!
         Detected use of epicsThread from child process after fork()
-----------------------
Ready to start testing, use GUI play button.
Done generating report: /.../wetest-results.pdf
GUI closed.
Aborting execution.
Exiting WeTest.

Metadata

Metadata

Assignees

Labels

invalidThis doesn't seem right

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions