Open Bug 1255476 Opened 4 years ago Updated 5 months ago

Make a task for running JS gdb integration test

Categories

(Core :: JavaScript Engine, defect)

defect
Not set

Tracking

()

ASSIGNED

People

(Reporter: sfink, Assigned: sfink)

References

Details

Attachments

(4 files, 2 obsolete files)

The JS tree contains some prettyprinters for various types, and a test suite for when we inevitably break them. It would be good to have a task that runs these tests.

I'm not sure when to schedule these jobs, though. I'll worry about that later.
Some refactoring to make it easier to create sm-* jobs that share some but not all things with existing sm-* jobs.
First step is to teach autospider.sh how to run the gdb tests.
Attachment #8729063 - Flags: review?(terrence)
Create the gdb test task.

It is a little arguable whether we actually need a separate job for this. But up until now, breaking the gdb integration has not been considered a tier 1 failure, so I am reluctant to make it one without getting buy-in first. And it seems like it's pretty harmless to have a job that only runs on try if you explicitly request it.

I'll need to figure out when and how to get it scheduled for integration trees eventually.
This is almost entirely just refactoring, but one part needs review: I removed the buildbot routes from sm_base.yml because (1) they didn't seem like they were likely to be used or useful; and (2) they were named "sm-plain" for *all* sm-* jobs, which clearly doesn't seem right.

But I may be wrong and they may have been used for something?
Attachment #8729068 - Flags: review?(garndt)
Attachment #8729061 - Attachment is obsolete: true
Minor update to move the sm_base.yml changes to the earlier patch, since they make more sense there.
Attachment #8729070 - Flags: review?(garndt)
Attachment #8729064 - Attachment is obsolete: true
Comment on attachment 8729063 [details] [diff] [review]
Add --test, --skip-test, and gdb test to autospider.sh

Review of attachment 8729063 [details] [diff] [review]:
-----------------------------------------------------------------

Very neat!
Attachment #8729063 - Flags: review?(terrence) → review+
Attachment #8729068 - Flags: review?(garndt) → review+
Attachment #8729070 - Flags: review?(garndt) → review+
Backed out for breaking Windows SM jobs.
https://hg.mozilla.org/integration/mozilla-inbound/rev/38508f1f08d1

https://treeherder.mozilla.org/logviewer.html#?job_id=23468897&repo=mozilla-inbound#L3130
/c/builds/moz2_slave/m-in_w32_sm-plain-000000000000/src/js/src/devtools/automation/autospider.sh: line 189: declare: -A: invalid option
$ bash --version
GNU bash, version 3.1.23(1)-release (i686-pc-msys)

:(
Ok, we'll have to drop back to a somewhat more Real Programmer-y way of doing this.
Attachment #8729278 - Flags: review?(terrence)
I'll bet Python would be vastly more portable than Bash, and work better on Windows to boot.

AND ACTUALLY BE A REAL LANGUAGE WITH, YOU KNOW, TYPES
Comment on attachment 8729278 [details] [diff] [review]
Add --test, --skip-test, and gdb test to autospider.sh,

Review of attachment 8729278 [details] [diff] [review]:
-----------------------------------------------------------------

I'll accept this for now so we can move on, but it is time to rewrite this in python: most of the logic here is just logic and not the sort of thing that needs to be intimate with the command line.
Attachment #8729278 - Flags: review?(terrence) → review+
Yeah, autospider.sh is well over the threshold of complexity. Although on the other hand, there are two things that argue for using bash instead of python: (1) it loads in some existing shell scripts (mozconfig files, actually) in order to get settings that work in automation; and (2) at least with my weak knowledge of python, it's actually easier to use shell script to implement the timeout logic. (Which is sad, because it's pretty darn ugly in the shell script version.)

Still, the rest of it would be way easier in python, so I may as well switch it over before I sink too much more time into freshly-learned shell scripting craziness. There's a distinct lack of urgency here, because in order to land this stack it turns out I'm going to have to compile my own gdb for the automation system and get it installed/downloaded.

So for now, I'll probably just put this on ice.
Lots of outdated cruft here. autospider has been rewritten in Python by now, and I think most of the functionality here probably already exists in it? It would require some archaeology to see what else is still needed.
Blocks: 1597005
You need to log in before you can comment on or make changes to this bug.