Uploaded image for project: 'Data Management'
  1. Data Management
  2. DM-26666

Write the Test Framework of SAL LabVIEW API in Phase 2

    XMLWordPrintable

    Details

    • Type: Story
    • Status: Done
    • Resolution: Done
    • Fix Version/s: None
    • Component/s: ts_main_telescope
    • Labels:
    • Story Points:
      3
    • Sprint:
      TSSW Sprint - Sep 14 - Sep 28
    • Team:
      Telescope and Site
    • Urgent?:
      No

      Description

      Write the test framework of SAL LabVIEW API. This task begins to construct a framework to test the LabVIEW API for each new SAL update. In the past, we used the component CSC in LabVIEW to test this. Now, we need a framework to test this automatically. The SAL LabVIEW APIs rely on the shared memory, which is not needed for the C++ and JAVA APIs. Therefore, this kind of automatic test framework should be helpful for the maintenance of CSC in LabVIEW. This task is in the phase 2.

        Attachments

          Issue Links

            Activity

            Hide
            ttsai Te-Wei Tsai added a comment - - edited

            Dave updated the ts_sal and let me use the commit: ea26657 in davemills/V5.0.0RC2 to test.

            I got the following warning message from the setup of ts_sal:

            Please ensure LSST_DDS_QOS references an existing file
            

            It looks like the variable of LSST_DDS_QOS is needed. I do not have this file in ts_sal. Feedback to Dave already.

            After checking with Dave, I need to clone the ts_idl as well.

            I added the test data from the latest ts_sal to the ticket branch.

            ts_SALLabVIEW can pass the ts_sal commit: 82780f2. There is no problem.

            I put the transformed files into the ts_SALLabVIEW_test. I did the test of events. The getEvent vi can get the priority value only. Feedback to Dave. The LabVIEW crashes if issuing the release vi.

            Show
            ttsai Te-Wei Tsai added a comment - - edited Dave updated the ts_sal  and let me use the commit: ea26657 in davemills/V5.0.0RC2 to test. I got the following warning message from the setup of ts_sal : Please ensure LSST_DDS_QOS references an existing file It looks like the variable of LSST_DDS_QOS  is needed. I do not have this file in ts_sal . Feedback to Dave already. After checking with Dave, I need to clone the ts_idl  as well. I added the test data from the latest ts_sal  to the ticket branch. ts_SALLabVIEW can pass the ts_sal  commit: 82780f2. There is no problem. I put the transformed files into the ts_SALLabVIEW_test . I did the test of events. The getEvent  vi can get the priority  value only. Feedback to Dave. The LabVIEW crashes if issuing the release  vi.
            Hide
            ttsai Te-Wei Tsai added a comment -

            Dave said the fix is in commit: c2c42fb.

            Show
            ttsai Te-Wei Tsai added a comment - Dave said the fix is in commit: c2c42fb.
            Hide
            ttsai Te-Wei Tsai added a comment - - edited

            Tested the SAL LabVIEW Vi in the latest ts_sal. The SAL can work now. Added the description of TestID in README.md. Added the access method to SalProcess class (renamed from TestProcess class).

            Show
            ttsai Te-Wei Tsai added a comment - - edited Tested the SAL LabVIEW Vi in the latest ts_sal . The SAL can work now. Added the description of TestID in README.md . Added the access method to SalProcess class (renamed from TestProcess class).
            Hide
            ttsai Te-Wei Tsai added a comment -

            Got the following message by gdb when the release vi is called:

            [Detaching after fork from child process 23410]
            Program received signal SIGSEGV, Segmentation fault.
            0x00007fff70f61f93 in Test_salShmRelease () at SAL_Test_salShm.cpp:42
            42	      Test_memIO->client[LVClient].shutdown = true;
            Missing separate debuginfos, use: debuginfo-install bzip2-libs-1.0.6-13.el7.x86_64 elfutils-libelf-0.176-4.el7.x86_64 elfutils-libs-0.176-4.el7.x86_64 expat-2.1.0-11.el7.x86_64 fontconfig-2.13.0-4.3.el7.x86_64 freetype-2.8-14.el7.x86_64 glibc-2.17-307.el7.1.x86_64 java-1.8.0-openjdk-headless-1.8.0.262.b10-0.el7_8.x86_64 labview-2018-core-18.0.1-1.x86_64 libX11-1.6.7-2.el7.x86_64 libXau-1.0.8-2.1.el7.x86_64 libXcursor-1.1.15-1.el7.x86_64 libXext-1.3.3-3.el7.x86_64 libXfixes-5.0.3-1.el7.x86_64 libXft-2.3.2-2.el7.x86_64 libXinerama-1.1.3-2.1.el7.x86_64 libXrender-0.9.10-1.el7.x86_64 libattr-2.4.46-13.el7.x86_64 libcap-2.22-11.el7.x86_64 libgcc-4.8.5-39.el7.x86_64 libglvnd-1.0.1-0.8.git5baa1e5.el7.x86_64 libglvnd-glx-1.0.1-0.8.git5baa1e5.el7.x86_64 libpng-1.5.13-7.el7_2.x86_64 libstdc++-4.8.5-39.el7.x86_64 libuuid-2.23.2-63.el7.x86_64 libxcb-1.13-1.el7.x86_64 systemd-libs-219-73.el7_8.9.x86_64 xz-libs-5.2.2-1.el7.x86_64 zlib-1.2.7-18.el7.x86_64
            (gdb) where
            #0  0x00007fff70f61f93 in Test_salShmRelease () at SAL_Test_salShm.cpp:42
            #1  0x0000000006a4afea in ?? ()
            #2  0x0000000007f01f00 in ?? ()
            #3  0x0000000001c96d33 in ExtFuncWrapper ()
            #4  0x0000000006a4ad68 in ?? ()
            #5  0x00000000058cfb80 in ?? ()
            #6  0x0000000007f01f00 in ?? ()
            #7  0x00007fffffffc1d0 in ?? ()
            #8  0x0000000001dd973b in ?? ()
            #9  0x0000000001dd1ad8 in ?? ()
            #10 0x0000000001e5b78c in ?? ()
            #11 0x0000000001e555c8 in ?? ()
            #12 0x00000000005f7699 in ?? ()
            #13 0x00000000005f78a8 in ?? ()
            #14 0x00007ffff5002555 in __libc_start_main () from /usr/lib64/libc.so.6
            #15 0x00000000005f6599 in ?? ()
            #16 0x00007fffffffd4c8 in ?? ()
            #17 0x000000000000001c in ?? ()
            #18 0x0000000000000001 in ?? ()
            #19 0x00007fffffffd938 in ?? ()
            #20 0x0000000000000000 in ?? ()
            

            Show
            ttsai Te-Wei Tsai added a comment - Got the following message by gdb  when the release vi is called: [Detaching after fork from child process 23410 ] Program received signal SIGSEGV, Segmentation fault. 0x00007fff70f61f93 in Test_salShmRelease () at SAL_Test_salShm.cpp: 42 42 Test_memIO->client[LVClient].shutdown = true ; Missing separate debuginfos, use: debuginfo-install bzip2-libs- 1.0 . 6 - 13 .el7.x86_64 elfutils-libelf- 0.176 - 4 .el7.x86_64 elfutils-libs- 0.176 - 4 .el7.x86_64 expat- 2.1 . 0 - 11 .el7.x86_64 fontconfig- 2.13 . 0 - 4.3 .el7.x86_64 freetype- 2.8 - 14 .el7.x86_64 glibc- 2.17 - 307 .el7. 1 .x86_64 java- 1.8 . 0 -openjdk-headless- 1.8 . 0.262 .b10- 0 .el7_8.x86_64 labview- 2018 -core- 18.0 . 1 - 1 .x86_64 libX11- 1.6 . 7 - 2 .el7.x86_64 libXau- 1.0 . 8 - 2.1 .el7.x86_64 libXcursor- 1.1 . 15 - 1 .el7.x86_64 libXext- 1.3 . 3 - 3 .el7.x86_64 libXfixes- 5.0 . 3 - 1 .el7.x86_64 libXft- 2.3 . 2 - 2 .el7.x86_64 libXinerama- 1.1 . 3 - 2.1 .el7.x86_64 libXrender- 0.9 . 10 - 1 .el7.x86_64 libattr- 2.4 . 46 - 13 .el7.x86_64 libcap- 2.22 - 11 .el7.x86_64 libgcc- 4.8 . 5 - 39 .el7.x86_64 libglvnd- 1.0 . 1 - 0.8 .git5baa1e5.el7.x86_64 libglvnd-glx- 1.0 . 1 - 0.8 .git5baa1e5.el7.x86_64 libpng- 1.5 . 13 - 7 .el7_2.x86_64 libstdc++- 4.8 . 5 - 39 .el7.x86_64 libuuid- 2.23 . 2 - 63 .el7.x86_64 libxcb- 1.13 - 1 .el7.x86_64 systemd-libs- 219 - 73 .el7_8. 9 .x86_64 xz-libs- 5.2 . 2 - 1 .el7.x86_64 zlib- 1.2 . 7 - 18 .el7.x86_64 (gdb) where # 0 0x00007fff70f61f93 in Test_salShmRelease () at SAL_Test_salShm.cpp: 42 # 1 0x0000000006a4afea in ?? () # 2 0x0000000007f01f00 in ?? () # 3 0x0000000001c96d33 in ExtFuncWrapper () # 4 0x0000000006a4ad68 in ?? () # 5 0x00000000058cfb80 in ?? () # 6 0x0000000007f01f00 in ?? () # 7 0x00007fffffffc1d0 in ?? () # 8 0x0000000001dd973b in ?? () # 9 0x0000000001dd1ad8 in ?? () # 10 0x0000000001e5b78c in ?? () # 11 0x0000000001e555c8 in ?? () # 12 0x00000000005f7699 in ?? () # 13 0x00000000005f78a8 in ?? () # 14 0x00007ffff5002555 in __libc_start_main () from /usr/lib64/libc.so. 6 # 15 0x00000000005f6599 in ?? () # 16 0x00007fffffffd4c8 in ?? () # 17 0x000000000000001c in ?? () # 18 0x0000000000000001 in ?? () # 19 0x00007fffffffd938 in ?? () # 20 0x0000000000000000 in ?? ()
            Hide
            ttsai Te-Wei Tsai added a comment - - edited

            Dave suggested to test the commit: 0afb009 in davemills/V5.0.0RC2 of ts_sal.

            Created a command line task to do the following: (1) run the monitor, (2) connect, and (3) release.

            Show
            ttsai Te-Wei Tsai added a comment - - edited Dave suggested to test the commit: 0afb009 in  davemills/V5.0.0RC2 of ts_sal . Created a command line task to do the following: (1) run the monitor, (2) connect, and (3) release.
            Hide
            ttsai Te-Wei Tsai added a comment -

            I tested the commit of 0afb009 in ts_sal and the release will not crash the LabVIEW now.

            Show
            ttsai Te-Wei Tsai added a comment - I tested the commit of 0afb009 in ts_sal and the release will not crash the LabVIEW now.
            Hide
            ttsai Te-Wei Tsai added a comment -

            Please help to review the PR:
            https://github.com/lsst-ts/ts_SALLabVIEW_test/pull/2

            The command line task (*testConnect.vi*) can be used to test the connection and release of shared memory.

            The test of events will wait for the available debug messages in the monitor to do.

            Show
            ttsai Te-Wei Tsai added a comment - Please help to review the PR: https://github.com/lsst-ts/ts_SALLabVIEW_test/pull/2 The command line task (* testConnect.vi *) can be used to test the connection and release of shared memory. The test of events will wait for the available debug messages in the monitor to do.

              People

              Assignee:
              ttsai Te-Wei Tsai
              Reporter:
              ttsai Te-Wei Tsai
              Reviewers:
              Dave Mills
              Watchers:
              Dave Mills, Te-Wei Tsai
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved:
                Start date:
                End date:

                  Jenkins

                  No builds found.