There are two things that need to be tested.
1) That all of the software components are tested individually and work according to their individual designs.
2) That all of the software components are tested together and that the entire system operates together to meet the overall design.
Each software team is responsible for doing the first type of testing. Each individual team might not have been responsible for the second type of testing. This is known as integration testing. Integration testing generally needs to be done separately, and if a specific team wasn't contracted to do integration testing, they would not plan for it.
In my opinion, for this type of large project with multiple players, it is best to have one team responsible for doing the integration and integration testing. The other teams should be on-call if there is a problem... but they wouldn't do anything unless the integration team requested it.
The team responsible for integration should have been very clear to everyone. And this team should bear the responsibility.