The general meaning of "cross-functional team" is a team which combines specialists in different fields that are required to reach the goal.
But it looks like in Agile cross-functionality means not only combining different specialists, but making them mix. Henrik Kniberg defines cross-functional team this way: "Cross-functional just means that the team as a whole has all skills needed to build the product, and that each team member is willing to do more than just their own thing."
But where is the line drawn? Is it normal to ask developers to become testers for an iteration if it is required?