Bug #4012

Get segmentation fault when trying to call method from 3rd party's API

Added by thyrlian (Jing Li) over 7 years ago. Updated 5 months ago.

Target version:
ruby -v:
ruby 1.9.2p0 (2010-08-18) [i386-mingw32]


I tried to call a method in an interface from 3rd party's API. The interface has been successfully found by ole_query_interface, while at next step of calling the method inside, I got a segmentation fault. And I think the parameters I passed into the method are correct.

This implementation is using HP Quality Center Open Test Architecture API.
Interface: ISupportCopyPaste
Public Method: CopyToClipBoard
Syntax (Visual Basic):
Public Function CopyToClipBoard( _
ByVal IDSFilter As String, _
Optional ByVal mode As Long = 0, _
Optional ByVal Path As String = "" _
) As String
Either comma separated list of ID numbers or a TDFilter.Text that qualifies the items to be copied.
Use when copying a folder. The path of the folder.
Return Type:
The data copied to the clipboard.

Codes Snippet:
iscp = tstsf.ole_query_interface(iid_ISupportCopyPaste)
clipboard = iscp.CopyToClipBoard(copied_id)
# or replace above one with below
# clipboard = iscp.CopyToClipBoard(copied_id, 0, "")

Error info:
-- control frame ----------
c:0004 p:---- s:0025 b:0025 l:000024 d:000024 CFUNC :method_missing
c:0003 p:0612 s:0023 b:0023 l:00118c d:001980 EVAL qc.rb:76
c:0002 p:---- s:0004 b:0004 l:000003 d:000003 FINISH
c:0001 p:0000 s:0002 b:0002 l:00118c d:00118c TOP

-- Ruby level backtrace information ----------------------------------------
qc.rb:76:in <main>'

qc.rb (3.13 KB) qc.rb code thyrlian (Jing Li), 11/02/2010 12:48 AM


#1 Updated by luislavena (Luis Lavena) over 7 years ago


Since I don't have HP installed tools (or will be without knowing exactly from where and which one to get)

Can you inspect that copied_id is what the type of object expected?

Also, as the example you provided, can remove the 0, "" optionals just for testing?

Thank you.

#2 Updated by thyrlian (Jing Li) over 7 years ago

Hi Luis,

Sorry for lack of information. The 'copied_id' is a Fixnum and here is 25511 for each running. Actually I've tried both the fixnum itself and to_s as the parameter, while the result is the same. And according to HP's spec, this should be alright.

As in my comments, remove the optional parameters 0, "" has the same error as with these parameters.

Thanks a lot.

#3 Updated by thyrlian (Jing Li) over 7 years ago

In the spec of parameter, it's said:
IDSFilter: Either comma separated list of ID numbers or a TDFilter.Text that qualifies the items to be copied.

So I also tried a bit TDFilter.Text type, it doesn't work either.

copied_id = tdcon.TestSetTreeManager.NodeByPath("#{path_1}\wk30\Component").FindTestSets("BAT_2010_0808").Item(1).TSTestFactory.Filter.Text

Here the copied_id is String and its value is "[Filter]".

#4 [ruby-core:37425] Updated by naruse (Yui NARUSE) almost 7 years ago

  • Status changed from Open to Assigned
  • Assignee set to suke (Masaki Suketa)
  • Target version set to 1.9.3

#5 [ruby-core:38175] Updated by suke (Masaki Suketa) almost 7 years ago

Sorry for being too late to reply.
I would like to know the value of iid_ISupportCopyPaste.
Could you tell me the value?

p iid_ISupportCopyPaste # I would to know the result of this line.
iscp = tstsf.ole_query_interface(iid_ISupportCopyPaste)

#6 [ruby-core:38314] Updated by kosaki (Motohiro KOSAKI) almost 7 years ago

  • Status changed from Assigned to Feedback
  • Target version changed from 1.9.3 to 1.9.4

#7 Updated by naruse (Yui NARUSE) about 5 years ago

  • Target version changed from 1.9.4 to 2.6

#8 Updated by naruse (Yui NARUSE) 5 months ago

  • Target version deleted (2.6)

Also available in: Atom PDF